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

Fuzzing native trong Go (1.18+): để máy tự sinh input tìm bug

Test đơn vị chỉ phủ những input lập trình viên nghĩ tới. Fuzzing tự sinh hàng triệu input kỳ quái để tìm panic và ca biên — tích hợp thẳng vào go test từ Go 1.18. Đo thật: một hàm test thường XANH nhưng fuzz tìm ra input '0' làm panic trong dưới 1 giây, tự rút gọn tối giản và lưu làm hồi quy.

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

singleflight trong Go: gộp 100 lời gọi trùng thành 1 để chống thundering herd

Khi cache miss một key nóng, 100 request cùng lao vào gọi DB. singleflight gộp chúng thành một lời gọi thật, 99 kia chờ và dùng chung kết quả. Đo thật: 100 goroutine cùng key khiến hàm đắt chạy đúng 1 lần thay vì 100. Cơ chế, DoChan, và cạm bẫy lỗi lan. Go 1.23.

Web 22/09/2026 6 phút

Chứng chỉ X.509 và chuỗi tin cậy: vì sao trình duyệt tin server — tự dựng CA để hiểu

Cái ổ khóa xanh trên trình duyệt dựa trên một chuỗi tin cậy: cert của site được một CA ký, CA đó lại được CA gốc ký, và trình duyệt chỉ tin sẵn vài CA gốc. Bài này tự dựng một CA rồi ký cert cho web.local bằng openssl, đọc cấu trúc cert (subject, issuer, SAN, hạn), và chứng minh xác thực chuỗi thành công với CA đúng, thất bại với CA sai.