#go
13 bài viết về chủ đề này
Fan-in Fan-out trong Go — Chia việc cho goroutine, gom kết quả lại
Fan-in fan-out giúp xử lý hàng ngàn tác vụ song song bằng goroutine rồi gom kết quả — kèm code mẫu Go và kinh nghiệm thực chiến.
Go pprof thực chiến — Tìm bottleneck và rò rỉ memory
Profile CPU, heap và goroutine bằng pprof trong Go: cách bật endpoint, đọc flame graph và kinh nghiệm bắt bottleneck thực tế.
Goroutine Leak trong Go — Kẻ giết RAM thầm lặng
Goroutine leak âm thầm ăn hết RAM của bạn. Nhận diện 3 pattern leak kinh điển và fix bằng context + select + goleak.
Integration Testing với Testcontainers — Test thật, không mock
Học cách dùng Testcontainers để viết integration test với dependency thật (Postgres, Redis) trong Go — không mock, chạy CI mượt, code an tâm hơn.
Graceful Shutdown trong Go — Signal, Context & bài học thực tế
Học cách graceful shutdown HTTP server, worker pool và background jobs trong Go bằng signal.Notify, context và sync.WaitGroup từ kinh nghiệm production thực tế.
Table-Driven Tests trong Go — Viết test sạch, maintain dễ
Table-driven tests giúp Go tests gọn gàng, dễ thêm case mới. Học pattern này qua ví dụ thực tế và kinh nghiệm production.
Docker Multi-Stage Builds — image Go từ 1GB xuống 20MB
Docker multi-stage builds giảm image Go từ 1GB xuống 20MB. Học cách build nhẹ, an toàn, nhanh với Dockerfile mẫu và kinh nghiệm production.
Circuit Breaker Pattern — đừng để một service chết kéo sập cả hệ thống
Tìm hiểu Circuit Breaker pattern — cách ngăn chặn cascade failure trong microservices với code Go thực tế.
Testcontainers — integration test với database thật, không cần mock
Testcontainers giúp bạn chạy integration test với PostgreSQL, Redis, Kafka thật trong container. Tạm biệt mock, tạm biệt những bug chỉ xuất hiện ở production.
Goroutines & Channels — Sức mạnh concurrency của Go không chỉ là 'chạy song song'
Goroutines và channels là hai thứ làm nên tên tuổi của Go. Một góc nhìn thực tế về concurrency trong Go — từ goroutine leak, channel blocking, tới những pattern áp dụng trong công việc hằng ngày.
Context trong Go — thứ mà dev Go nào cũng cần nắm
Context package trong Go có vẻ đơn giản nhưng nếu xài sai là đau lắm. Mình kể ít chuyện về timeout, cancel, và mấy cái bẫy mà dev hay mắc.