Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2324 bài viết · Website
Kiến trúc hệ thống 22/09/2026 6 phút

Stripe idempotency key: vì sao retry thanh toán không tính tiền bạn hai lần

Mạng chập chờn khiến client retry — và với thanh toán, retry ngây thơ nghĩa là tính tiền hai lần. Stripe giải bằng Idempotency-Key: lưu kết quả lần đầu, request trùng key trả lại kết quả cũ mà không thực thi lại. Bài này dựng THẬT trên Redis bằng Lua atomic và đo: có idempotency trừ tiền 1 lần, không có thì 5 lần.

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

Functional options nâng cao trong Go: closure làm cấu hình, tự validate, tương thích ngược

Functional options dùng closure làm tham số cấu hình, cho API mở rộng mà vẫn tương thích ngược. Đo thật trong Go 1.23: option tự validate và gộp lỗi tại constructor, chậm hơn config struct khoảng 6ns nhưng cùng một cấp phát, và closure không thoát heap khi dùng trực tiếp.

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

Viết hàm assembly Plan 9 trong Go: chạy được, nhưng vì sao thường lỗ

Hướng dẫn viết một hàm assembly từ đầu: khai báo Go không thân, cài đặt trong file .s, đọc tham số qua FP. Chạy thật cho kết quả đúng. Nhưng đo trung thực cho thấy hàm asm không inline được, nên với hàm nhỏ thường lỗ — nó chỉ đáng cho thứ compiler không diễn đạt được. Go 1.23.