Golang: Zero to Hero

Sê-ri 60 bài đi từ cú pháp Go cơ bản tới đồng thời, thư viện chuẩn và đưa ứng dụng lên sản xuất. Mỗi bài có ví dụ chạy được và số đo thật.

14/60 phần đã đăng Go
1 Hello World của Go nặng 2,1 MB — và đó là toàn bộ thứ bạn cần đem lên máy chủ Go giải bài toán nào, đánh đổi những gì, và ba con số đo được giải thích vì sao nó chiếm lĩnh mảng hạ tầng: build 48ms, binary tĩnh, cross-compile một lệnh. 14/06/2026 · 5 phút đọc 2 go run mất 62ms, chạy binary mất 1ms — vì go run biên dịch lại mỗi lần Cài Go, viết chương trình đầu tiên, và hiểu chính xác go run khác go build chỗ nào bằng số đo. 15/06/2026 · 5 phút đọc 3 go.sum chỉ có 2 dòng cho một phụ thuộc — và đó là toàn bộ cơ chế bảo vệ chuỗi cung ứng của Go Package khác module chỗ nào, go.mod và go.sum làm gì, và vì sao Go chọn khoá phiên bản chặt thay vì chọn bản mới nhất. 16/06/2026 · 5 phút đọc 4 Đọc một map chưa khởi tạo vẫn ra kết quả — zero value là quyết định thiết kế lớn nhất của Go var và :=, zero value dùng được ngay, vì sao Go cấm ép kiểu ngầm, tràn số im lặng, và hằng không kiểu có độ chính xác tuỳ ý. 17/06/2026 · 6 phút đọc 5 string(65) trả về "A" chứ không phải "65" — và ba chỗ chuyển kiểu khác hay cắn Chuyển kiểu tường minh trong Go, cắt cụt im lặng khi từ float sang int, strconv là cửa duy nhất giữa chuỗi và số, và cái gì so sánh được bằng dấu bằng. 18/06/2026 · 4 phút đọc 6 Cùng một đoạn mã: Go 1.21 in '3 3 3', Go 1.22 in '0 1 2' Go chỉ có một từ khoá vòng lặp, switch không cần break, và bản vá biến vòng lặp ở Go 1.22 đã âm thầm đổi ngữ nghĩa của mã cũ. 19/06/2026 · 5 phút đọc 7 Hàm trả về hai giá trị — và toàn bộ cách Go xử lý lỗi dựng trên đúng chi tiết đó Nhiều giá trị trả về, named return và khi nào nên tránh, variadic, hàm hạng nhất và closure. 20/06/2026 · 4 phút đọc 8 Gọi method con trỏ trên một biến giá trị vẫn chạy — Go viết hộ bạn dấu & Con trỏ trong Go: có & và *, không có số học con trỏ, receiver giá trị khác receiver con trỏ, và khi nào Go tự lấy địa chỉ giúp. 21/06/2026 · 5 phút đọc 9 append vào slice con ghi đè phần tử của slice gốc — và không có gì cảnh báo bạn Ba thành phần của slice, cách append quyết định giữ hay đổi mảng nền, và cái bẫy chia sẻ bộ nhớ đo được bằng một ví dụ năm phần tử. 22/06/2026 · 5 phút đọc 10 Go xáo thứ tự duyệt map có chủ đích — để bạn không viết mã dựa vào nó comma-ok phân biệt 'không có' với 'bằng 0', vì sao đọc map nil được mà ghi thì panic, và cách xử lý khi cần thứ tự ổn định. 23/06/2026 · 4 phút đọc 11 Đổi thứ tự ba trường, struct từ 24 byte xuống 16 — căn lề bộ nhớ không miễn phí Bốn cách viết composite literal, struct rỗng chiếm 0 byte, so sánh struct bằng dấu bằng, và vì sao thứ tự khai báo trường có giá. 24/06/2026 · 4 phút đọc 12 Meo{} không thoả mãn interface mà *Meo thì có — method set là thứ quyết định Method gắn vào kiểu chứ không nằm trong kiểu, method set của giá trị khác của con trỏ, và vì sao khác biệt đó chỉ lộ ra khi gán vào interface. 25/06/2026 · 4 phút đọc 13 Không có implements, và đó là lý do bạn viết được interface cho code của người khác Interface trong Go được thoả mãn ngầm định, vì sao interface nên nhỏ và nên khai ở phía người dùng, và cách kiểm tra lúc biên dịch. 26/06/2026 · 4 phút đọc 14 x.(int) không có comma-ok là một dòng panic đang chờ — và đó là cả sự khác biệt any là gì, hai dạng type assertion, type switch, và vì sao dùng any nhiều là dấu hiệu thiết kế sai. 27/06/2026 · 4 phút đọc

Còn 46 phần nữa sẽ lần lượt được đăng.