Blog
Nơi mình chia sẻ nhật ký và những câu chuyện nhỏ trong hành trình làm nghề.
Zero-downtime Migration — đổi schema khi app đang chạy
Đổi schema trên DB đang chạy production mà không downtime: expand-contract, ADD COLUMN an toàn, index CONCURRENTLY và backfill theo batch.
pprof trong Go — tìm thủ phạm ngốn CPU và RAM
Chạy pprof đúng cách để tìm hot path CPU, memory leak và goroutine kẹt trong service Go — kèm code mẫu và mấy cái bẫy em từng dính.
Nén payload API — gzip, Brotli hay zstd cho backend?
Bật gzip chưa chắc đã nhanh. So sánh gzip, Brotli, zstd, cái bẫy Vary header, middleware nén trong Go và 3 cạm bẫy hay gặp.
Mutation Testing — Coverage 90% mà bug vẫn lọt lưới
Coverage 90% chưa chắc test tốt. Mutation testing tự sửa code để xem test có bắt được bug thật không, kèm ví dụ Go với gremlins.