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 11 phút

Generics vs interface trong Go: chi phí thật nằm ở stencil và dictionary

Generics của Go dùng GC shape stenciling: kiểu giá trị sinh mã riêng, mọi con trỏ chung một stencil và phân biệt bằng dictionary lúc chạy. Đo thật trong Go 1.23 bằng benchmark bốn đường thực thi và soi bảng ký hiệu — 4 kiểu chỉ sinh 3 bản mã, generic method nhanh gần gấp đôi interface.

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

Clean Architecture trong Go: hướng phụ thuộc mà compiler tự ép

Clean Architecture đặt logic nghiệp vụ ở trung tâm, mọi phụ thuộc chỉ trỏ vào trong. Đo thật trong Go 1.23: domain định nghĩa interface (port), infra hiện thực, và lệnh cấm import cycle của Go biến quy tắc kiến trúc thành lỗi biên dịch — bạn không thể làm domain phụ thuộc hạ tầng.