<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cà Phê &amp; Code — Go</title>
    <link>https://coffeecode.vn/categories/go</link>
    <description>Blog cá nhân chia sẻ kiến thức lập trình, kiến trúc phần mềm và công nghệ.</description>
    <language>vi</language>
    <atom:link href="https://coffeecode.vn/categories/go/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>x.(int) không có comma-ok là một dòng panic đang chờ — và đó là cả sự khác biệt</title>
      <link>https://coffeecode.vn/posts/any-type-assertion-va-type-switch</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/any-type-assertion-va-type-switch</guid>
      <description>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.</description>
      <pubDate>Sat, 27 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Không có implements, và đó là lý do bạn viết được interface cho code của người khác</title>
      <link>https://coffeecode.vn/posts/interface-thoa-man-ngam-dinh</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/interface-thoa-man-ngam-dinh</guid>
      <description>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.</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Meo{} không thoả mãn interface mà *Meo thì có — method set là thứ quyết định</title>
      <link>https://coffeecode.vn/posts/method-va-receiver</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/method-va-receiver</guid>
      <description>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.</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Đổi thứ tự ba trường, struct từ 24 byte xuống 16 — căn lề bộ nhớ không miễn phí</title>
      <link>https://coffeecode.vn/posts/struct-va-composite-literal</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/struct-va-composite-literal</guid>
      <description>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á.</description>
      <pubDate>Wed, 24 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Go xáo thứ tự duyệt map có chủ đích — để bạn không viết mã dựa vào nó</title>
      <link>https://coffeecode.vn/posts/map-trong-go</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/map-trong-go</guid>
      <description>comma-ok phân biệt &apos;không có&apos; với &apos;bằng 0&apos;, vì sao đọc map nil được mà ghi thì panic, và cách xử lý khi cần thứ tự ổn định.</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>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</title>
      <link>https://coffeecode.vn/posts/mang-va-slice</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/mang-va-slice</guid>
      <description>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ử.</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>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 &amp;</title>
      <link>https://coffeecode.vn/posts/con-tro-trong-go</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/con-tro-trong-go</guid>
      <description>Con trỏ trong Go: có &amp; 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.</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>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 đó</title>
      <link>https://coffeecode.vn/posts/ham-va-nhieu-gia-tri-tra-ve</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/ham-va-nhieu-gia-tri-tra-ve</guid>
      <description>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.</description>
      <pubDate>Sat, 20 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Cùng một đoạn mã: Go 1.21 in &apos;3 3 3&apos;, Go 1.22 in &apos;0 1 2&apos;</title>
      <link>https://coffeecode.vn/posts/dieu-kien-switch-va-for</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/dieu-kien-switch-va-for</guid>
      <description>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ũ.</description>
      <pubDate>Fri, 19 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>string(65) trả về &quot;A&quot; chứ không phải &quot;65&quot; — và ba chỗ chuyển kiểu khác hay cắn</title>
      <link>https://coffeecode.vn/posts/toan-tu-va-chuyen-kieu</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/toan-tu-va-chuyen-kieu</guid>
      <description>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.</description>
      <pubDate>Thu, 18 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>Đọ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</title>
      <link>https://coffeecode.vn/posts/bien-hang-va-kieu-co-ban</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/bien-hang-va-kieu-co-ban</guid>
      <description>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ỳ ý.</description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>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</title>
      <link>https://coffeecode.vn/posts/package-module-va-go-mod</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/package-module-va-go-mod</guid>
      <description>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.</description>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>go run mất 62ms, chạy binary mất 1ms — vì go run biên dịch lại mỗi lần</title>
      <link>https://coffeecode.vn/posts/cai-go-va-chuong-trinh-dau-tien</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/cai-go-va-chuong-trinh-dau-tien</guid>
      <description>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.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
    <item>
      <title>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ủ</title>
      <link>https://coffeecode.vn/posts/vi-sao-go-ton-tai</link>
      <guid isPermaLink="true">https://coffeecode.vn/posts/vi-sao-go-ton-tai</guid>
      <description>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.</description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 +0700</pubDate>
      <category>Go</category>
    </item>
  </channel>
</rss>
