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
- "The Go Programming Language" — Donovan & Kernighan (kinh điển)
- "100 Go Mistakes and How to Avoid Them" — Teiva Harsanyi (thực chiến)
- Effective Go — https://go.dev/doc/effective_go (miễn phí, chính chủ)
- Go by Example — https://gobyexample.com (tra cứu nhanh)
- 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:
- URL Shortener với HTTP + JSON + Map an toàn concurrency.
- Rate Limiter dùng channel + goroutine.
- Log aggregator dùng Fan-in pattern từ nhiều file.
- 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.