KHOÁ HỌC Phần 2 — 20% còn lại Tổng kết hành trình

Tổng kết hành trình

Sơ đồ trưởng thành của Go dev

📗 CƠ BẢN (Phần 1)              📗 NÂNG CAO (Phần 2)
├─ struct / interface           ├─ generics
├─ pointer                      ├─ reflection
├─ goroutine + channel          ├─ mutex, atomic
├─ context timeout              ├─ context Cancel/Value
├─ error handling               ├─ errors.Is / As / custom
├─ defer                        ├─ panic / recover
└─ package / import             └─ modules, testing, tooling

📌 Checklist Go dev "production-ready"

  • Hiểu slice header & bẫy shared array
  • Dùng map thread-safe (Mutex/sync.Map)
  • Viết custom error + errors.Is/As
  • Nắm ít nhất 3 pattern channel (Worker Pool, Fan-in, Pipeline)
  • Viết được table-driven test + benchmark
  • Dùng context xuyên suốt mọi hàm I/O
  • Hiểu embedding & tránh dùng inheritance mentality
  • Struct tag cho JSON/DB
  • Cross-compile được binary
  • Đọc hiểu code chuẩn của net/http, sync, context

📚 Sách & tài liệu khuyến nghị đọc tiếp

  1. "The Go Programming Language" — Donovan & Kernighan (kinh điển)
  2. "100 Go Mistakes and How to Avoid Them" — Teiva Harsanyi (thực chiến)
  3. Effective Gohttps://go.dev/doc/effective_go (miễn phí, chính chủ)
  4. Go by Examplehttps://gobyexample.com (tra cứu nhanh)
  5. Source code stdlib của Go — trường học tốt nhất!

🏋️ Bài tập cuối

Áp dụng cả 2 phần của khoá học, tự viết:

  1. URL Shortener với HTTP + JSON + Map an toàn concurrency.
  2. Rate Limiter dùng channel + goroutine.
  3. Log aggregator dùng Fan-in pattern từ nhiều file.
  4. CLI health-check giống dự án Phần 1 nhưng có: retry, custom error, cấu hình YAML.

🎉 Đến đây bạn đã sở hữu bộ khung tri thức Go tương đương ~1 năm kinh nghiệm thực chiến.

Bước tiếp theo: đọc code người khác (Kubernetes, Docker, Hugo) và viết tool cho công việc thật. Gợi ý gần nhất — chính dự án 4-WebGoHTMX này: đọc xong khoá học này rồi làm thử /quiz (kiến trúc dự án) và /ctf (tư duy debug thực chiến) để kiểm tra lại kiến thức vừa học qua code thật, không phải ví dụ minh hoạ nữa.

← Nâng cao ẩn — dùng khi cần