Lập trình Go 22/09/2026 9 phút

Stop-the-world trong Go: GC còn dừng chương trình ở đâu, và bao lâu

GC Go dừng toàn bộ chương trình ở đúng hai điểm mỗi chu kỳ để chuyển pha an toàn. Đo thật: STW chỉ vài chục tới vài trăm micro-giây, tăng nhẹ từ 39 us (100 goroutine) lên 161 us (100k) nhưng luôn dưới 1 ms kể cả nửa triệu goroutine. Vì sao vẫn cần STW và điều gì làm nó dài ra. Go 1.23.

Lập trình Go 22/09/2026 10 phút

Benchmark chính xác với benchstat trong Go: một con số đơn lẻ dễ lừa

Chạy go test -bench một lần cho một con số, nhưng máy đầy nhiễu nên nó dao động mỗi lần. So hai phiên bản bằng một con số mỗi bên có thể kết luận sai. benchstat chạy nhiều lần, tính trung bình ± độ lệch, và so hai bản bằng p-value. Đo thật: cải tiến -94.84% (p=0.000) là thật, hàm không đổi báo p=1.000.

Lập trình Go 22/09/2026 10 phút

DDD tactical patterns trong Go: value object, entity, aggregate — và cách Go thể hiện chúng

Domain-Driven Design tactical patterns — value object, entity, aggregate — có cách thể hiện riêng trong Go nhờ value semantics của struct. Đo thật trong Go 1.23: value object so theo giá trị bằng ==, entity so theo ID, aggregate root ép bất biến, và struct comparable làm map key miễn phí.