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

Compiler directive //go: trong Go: từ embed tiện lợi đến linkname nguy hiểm

Chú thích //go: là công tắc điều khiển compiler và linker. Đo thật: go:embed nhúng file vào binary lúc build, go:linkname gọi được hàm runtime riêng (runtime.nanotime), và một khoảng trắng thừa sau // khiến directive bị bỏ qua âm thầm. Cái nào an toàn, cái nào phá an toàn bộ nhớ. Go 1.23.

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

Golden file testing trong Go: lưu đầu ra kỳ vọng vào tệp, so tự động

Hàm sinh đầu ra lớn (báo cáo, HTML, JSON, mã sinh) khó viết assertion bằng tay. Golden file lưu đầu ra kỳ vọng vào một tệp, test so từng byte; đổi có chủ đích thì chạy -update ghi lại. Đo thật trong Go: sinh golden, so pass, đổi code thì test bắt khác biệt kèm diff, và -update chấp nhận thay đổi.

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.