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

Continuous profiling trong Go: hồ sơ CPU/bộ nhớ từ dịch vụ đang chạy thật

Benchmark cục bộ chỉ đo cái bạn nghĩ là nóng; điểm nóng production thường ở chỗ bất ngờ với tải và dữ liệu thật. net/http/pprof phơi endpoint để thu hồ sơ từ dịch vụ đang chạy mà không dừng nó. Đo thật trong Go: thu CPU profile 3 giây từ service live, pprof chỉ đúng hàm nóng 100% CPU.

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

CQRS trong Go: tách mô hình đọc khỏi mô hình ghi, và cái giá của read model

CQRS tách đường ghi (command, chuẩn hóa) khỏi đường đọc (query, gộp sẵn) để mỗi bên tối ưu độc lập. Đo thật trong Go 1.23: đọc từ read model dựng sẵn nhanh hơn tính lại từ 100k đơn khoảng 328 lần, đổi lại mỗi lệnh ghi phải chiếu và có thể trễ nhất quán.

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

Devirtualization trong Go: khi lời gọi interface biến thành một phép cộng

Nếu compiler chứng minh được kiểu động sau interface lúc biên dịch, nó thay dispatch động bằng lời gọi trực tiếp rồi inline luôn. Đo thật: một lời gọi interface co xuống còn một lệnh ADD (không itab, không CALL), nhanh hơn dispatch động ~3,8 lần. Điều kiện để nó xảy ra. Go 1.23.

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

WebSocket server thật trong Go: nâng cấp từ HTTP, giao tiếp hai chiều bền vững

WebSocket nâng cấp một kết nối HTTP thành kênh hai chiều mở liên tục cho chat, thông báo đẩy, dữ liệu real-time. Đo thật trong Go 1.23: bắt tay 101 Switching Protocols, gửi/nhận trên một kết nối bền, và một message qua WebSocket nhanh hơn HTTP polling khoảng 23 lần.

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

govulncheck trong Go: quét lỗ hổng theo cái code thực sự gọi tới

Scanner thường báo động mọi phụ thuộc dính CVE dù code không dùng hàm lỗi — ngập trong cảnh báo giả. govulncheck phân tích call graph, chỉ báo lỗ hổng code thực sự gọi tới, kèm đường dẫn gọi chính xác. Đo thật: 3 lỗ hổng yaml.v2 code gọi tới (kèm trace + phiên bản vá) so với 42 chỉ-có-không-gọi.