Quản lý source code trong dự án với GIT
Bạch Ngọc Toàn
Khóa học System Design dành cho developer 2–7 năm kinh nghiệm. Từ database, caching, microservices đến bảo mật và case study thực tế. Học để thiết kế được, không chỉ code được.
0 video • 0 giờ học
Bạn code tốt, deliver được task, nhưng mỗi khi senior hỏi "tại sao chọn cách này mà không phải cách kia?" — câu trả lời chỉ là "em thấy ổn". Đó chính xác là dấu hiệu bạn đang thiếu tư duy system design.
Khóa học này không dạy bạn thêm một framework mới. Nó dạy bạn nhìn vấn đề ở tầng cao hơn — thiết kế hệ thống có thể scale, bảo mật được, và quan trọng hơn, giải thích được tại sao bạn thiết kế như vậy.
Developer có 2–7 năm kinh nghiệm, đã code thành thạo nhưng chưa bao giờ phải nghĩ đến chuyện hệ thống sẽ hoạt động thế nào khi có 1 triệu người dùng, khi database bị overload, khi một service chết giữa đêm.
Nếu bạn đang nhắm đến senior/lead position, chuẩn bị phỏng vấn công ty nước ngoài, hoặc đơn giản là muốn thoát khỏi vòng lặp "code theo yêu cầu, không hiểu bức tranh lớn" — đây là khóa học phù hợp.
Không có kiến trúc nào đúng tuyệt đối. SQL vs NoSQL, microservices vs monolith, cache-aside vs write-through — mỗi lựa chọn đều có đánh đổi. Khóa học dạy bạn phân tích trade-off thay vì chọn theo bản năng hoặc copy từ tutorial.
Mỗi concept đều có bảng so sánh rõ ràng: khi nào dùng, khi nào không dùng, và tại sao. Không nói chung chung.
Phần nền tảng cover đủ những thứ bạn cần biết để xây hệ thống thực tế:
Database: Indexing đúng cách, replication, sharding, CAP theorem trong thực tế (không phải lý thuyết thuần túy)
Caching: Redis patterns, cache invalidation, cache stampede — những lỗi mà ai cũng gặp khi làm thật
Message Queue: Kafka vs RabbitMQ, idempotency, exactly-once delivery
Load Balancing: Layer 4 vs Layer 7, circuit breaker, health check
Stateless service design, session management khi scale ngang, rate limiting phân tán, capacity planning. Bạn sẽ biết cách ước lượng hệ thống sẽ chạm giới hạn ở đâu trước khi nó xảy ra — không phải sau khi production đã cháy.
Đây là điểm khác biệt lớn nhất của khóa này. Phần bảo mật không phải phần phụ thêm cho có — nó là một phần riêng 10 giờ, cover từ authentication/authorization, JWT pitfalls, API security theo OWASP, đến secret management và infrastructure security.
Thực tế là hầu hết khóa system design trên thị trường dừng lại ở scalability rồi kết thúc. Một hệ thống scale được nhưng bị tấn công vào lúc 2 giờ sáng thì không có ý nghĩa gì.
Đây là phần học viên nhớ lâu nhất. Mỗi case study đi theo flow hoàn chỉnh: yêu cầu → ước lượng → thiết kế sơ bộ → deep dive → trade-off discussion.
10 hệ thống được chọn có chủ đích để cover nhiều dạng bài toán khác nhau:
Case Study | Concept chính |
|---|---|
URL Shortener | Caching + database choice |
News Feed (Facebook) | Fan-out on write vs read |
Notification System | Async, delivery guarantee |
Distributed File Storage (S3) | Chunking, resumable upload |
Video Streaming (YouTube) | Encoding pipeline, CDN |
Chat System (WhatsApp) | WebSocket, message ordering |
Payment System | Idempotency, distributed transaction |
Ride-sharing (Uber) | Geo-indexing, real-time matching |
~60–70 giờ học, bao gồm lý thuyết, lab thực hành sau mỗi module, và case study.
Phần 0 — Foundation (~3h): Mindset thiết kế hệ thống, framework RESHADED, phân biệt functional vs non-functional requirements.
Phần 1 — Building Blocks (~15h): Network, database, caching, message queue, load balancing.
Phần 2 — Scalability (~12h): Horizontal scaling, microservices, rate limiting, capacity planning.
Phần 3 — Security (~10h): Authentication, API security, data security, infrastructure security.
Phần 4 — Reliability & Observability (~8h): Fault tolerance, consistency trade-off, monitoring, distributed tracing.
Phần 5 — Case Studies (~15h): 10 hệ thống thực tế.
Phần 6 — Interview Preparation (~8h): Framework 45 phút, mock interview có walkthrough, lỗi phổ biến, câu hỏi theo công ty.
Không nhất thiết phải học tuần tự từ đầu đến cuối:
Mới hoàn toàn với system design: Phần 0 → 1 → 2 → 3 → 5 → 6
Đã có base, chuẩn bị interview: Phần 0 → 3 → 4 → 5 → 6
Focus bảo mật: Phần 0 → 1 (Module 1.2, 1.3) → 3 → 5 (Case study Payment System)
Học xong không có nghĩa là bạn sẽ thiết kế được hệ thống như Google ngay lập tức. System design là kỹ năng tích lũy qua thực hành thực tế, không phải qua một khóa học. Khóa này cho bạn nền tảng tư duy và công cụ — phần còn lại là bạn phải tự áp dụng vào dự án thực tế.
Điều khóa học này đảm bảo: bạn sẽ hiểu tại sao một hệ thống được thiết kế như vậy, biết đặt câu hỏi đúng, và không còn đưa ra quyết định kiến trúc chỉ vì "thấy ổn".
Truy cập tedu.com.vn để xem chi tiết và đăng ký khóa học System Design for Developers.