Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Fundamentals of Backend Engineering

Kiến Thức Nền Tảng về Kỹ Thuật Backend

Kiến Thức Nền Tảng về Kỹ Thuật Backend

Hiểu các mẫu thiết kế, giao thức, cách thức thực thi và ủy quyền trong giao tiếp backend

4.7
(6,998 đánh giá)
55,266 học viên
Giảng viên
Hussein Nasser
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
19.5 giờ video
64 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 22/09/2026

Bạn sẽ học được gì

Nắm vững kiến thức cơ bản về kỹ thuật backend
Các mẫu thiết kế giao tiếp backend
Hiểu cách hoạt động của các giao thức giao tiếp backend
Hiểu cách Hạt nhân Hệ điều hành giao tiếp với Ứng dụng Backend
Kiến thức cơ bản về Hệ điều hành (Luồng, Tiến trình, IO bất đồng bộ trong Linux)
Tìm hiểu HTTP/1.1, HTTP/2, HTTP/3
Tìm hiểu gRPC, WebRTC, WebSockets
Tìm hiểu TLS 1.2, TLS 1.3, QUIC 0RTT

Yêu cầu

Kỹ năng lập trình trung cấp (1-2 năm kinh nghiệm)
Đã từng xây dựng một ứng dụng backend
Kiến thức cơ bản về mạng

Đối tượng phù hợp

Kỹ sư Backend
Kỹ sư FullStack
Kỹ sư Frontend quan tâm đến Backend (phải đã từng xây dựng ứng dụng backend)
Kỹ sư mạng muốn nâng cao kỹ năng thiết kế backend
Kỹ sư đảm bảo độ tin cậy hệ thống (SRE)

Nội dung khóa học

8 phần • 63 bài giảng
1 Chào mừng
2 Khóa học này dành cho ai?
3 Nội dung khóa học
4 Ghi chú khóa học
5 Tải xuống tất cả slide, mã nguồn và tài liệu tham khảo
1 Giới thiệu về Mẫu Thiết Kế Giao Tiếp Backend
2 Yêu cầu - Phản hồi (Request Response)
3 Tác vụ Đồng bộ và Bất đồng bộ
4 Đẩy (Push)
5 Thăm dò (Polling)
6 Thăm dò dài (Long Polling)
7 Sự kiện được Gửi từ Máy chủ (Server Sent Events)
8 Xuất bản - Đăng ký (Publish Subscribe / Pub/Sub)
9 Ghép kênh và Tách kênh (Multiplexing vs Demultiplexing - h2 proxying vs Connection Pooling)
10 Có trạng thái và Không trạng thái (Stateful vs Stateless)
11 Mẫu Thiết kế Sidecar
1 Giới thiệu về Giao thức
2 Thuộc tính của Giao thức
3 Mô hình OSI
4 Giao thức Internet
5 UDP
6 TCP
7 TLS
8 HTTP/1.1
9 HTTPS, TLS, Khóa và Chứng chỉ
10 WebSockets
11 HTTP/2
12 HTTP/3
13 gRPC
14 WebRTC
1 Giới thiệu cơ bản về Giao tiếp HTTPS
2 HTTPS qua TCP với TLS 1.2
3 HTTPS qua TCP với TLS 1.3
4 HTTPS qua QUIC (HTTP/3)
5 HTTPS qua TFO với TLS 1.3
6 HTTPS qua TCP với TLS 1.3 và 0RTT
7 HTTPS qua QUIC với 0RTT
1 Giới thiệu về Mẫu Thực Thi Backend
2 Tiến trình và Luồng, và cách chúng cạnh tranh thời gian CPU
3 Cách Backend Chấp nhận Kết nối
4 Đọc và Gửi Dữ liệu Socket
5 Trình Lắng nghe, Trình Chấp nhận và Trình Đọc
6 Mẫu Thực Thi: Một Luồng Lắng nghe, Chấp nhận và Đọc
7 Mẫu Thực Thi: Một Luồng Lắng nghe, Chấp nhận và Nhiều Luồng Đọc
8 Mẫu Thực Thi: Một Luồng Lắng nghe, Chấp nhận, Đọc với Cân bằng Tải Thông điệp
9 Mẫu Thực Thi: Nhiều Luồng Chấp nhận trên Một Socket
10 Mẫu Thực Thi: Nhiều Luồng Lắng nghe, Chấp nhận và Đọc với Chia sẻ Socket
11 Tính Bất biến (Idempotency) trong Backend
12 Thuật toán Nagle
13 Khi nào nên sử dụng luồng (threads)?
1 Proxy và Proxy Ngược
2 Bộ Cân bằng Tải Lớp 4 và Lớp 7
3 Ủy quyền WebSocket
1 Cách ChatGPT sử dụng Server Sent Events
2 Cách tôi thiết kế phần mềm
3 Hành trình của một Yêu cầu đến Backend
4 Hành trình của một Yêu cầu đến Backend (Video)
5 JSON Web Token (JWT), Ưu điểm và Nhược điểm
6 Tại sao SELECT COUNT (*) có thể ảnh hưởng đến hiệu suất Ứng dụng Backend của bạn
1 Kernel quản lý kết nối backend như thế nào?
2 Hết cổng TCP
3 Sự cố Postgres do bộ định tuyến Cisco gây ra (vấn đề TCP)
4 Xây dựng Ứng dụng Backend Bảo mật (Khuyến nghị OWASP)

Giới thiệu khóa học

Backend engineering is an art. During my 18 years career working with and building backend applications, I discovered that certain communication design patterns keep emerging. There are only handful of ways clients communicate with backend applications, although they might be more, I believe the patterns I discuss in this course are the most common. Examples of these patterns are request-response, publish-subscribe, short and long and push.

Based on these communication design patterns, engineers may use a number of protocols for concrete communication. While core transport vehicles are limited to either TCP or UDP, tons of industry specific protocols are built on top of these two to address certain problems and use cases. Examples of these high level protocols are HTTP/1.1, HTTP/2, HTTP/3, gRPC, WebRTC and many more. Other transport protocols like QUIC was built on top of UDP to bring HTTP/2 streaming down at the transport level. Each protocol has its pros and cons and fits certain use cases. In the course, I discuss the top common protocols and provide examples and demos where applicable.

Before the client can send a request, it has to establish a connection to the backend. Understanding how the connection is established, and what parts of connection establishment is done at kernel and what parts are done at the backend application process is critical. How the connection is then accepted by the backend application and how it can accept connections as fast as possible so the kernel queue doesn’t get full otherwise clients can no longer connect.

After the connection is established the client sends the request, but what happens exactly in the backend application to read the request? What exactly is a request? Understanding the cost of parsing a request based on the protocol makes the engineer appreciate the work done and equip her with better tools to troubleshoot performance problems or bugs.

Once the request reaches the backend, the application has to execute the request. The backend has a buffet of design choices when it comes to the style of execution it can choose. Understanding the difference between a process and a thread, multi-process, multi-threaded and the correlation to the number of CPU cores or hardware threads is crucial to pick the right execution pattern. One does not have to stick with these patterns but can invent new ones that suits their needs.

This course is designed for engineers who have built backend applications, it is an intermediate — advance level course, certain programming and networking knowledge is required so I recommend taking my fundamentals of network engineering course before taking this course if you don’t have the networking skills. I hope you enjoy this course, and thank you so much for considering it.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Backend Development
Hiển thị tất cả khoá học Software Development
Hiển thị tất cả khoá học System Design
Hiển thị tất cả khoá học Web Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊