Home Image

Xin chào!

Blog này được tạo ra chủ yếu như một nơi để tôi ghi chép lại những gì mình học được. Tuy vậy, nếu những bài viết ở đây cũng có thể giúp ích cho bạn, tôi sẽ rất vui.

Nội dung trên blog sẽ tập trung vào việc đi sâu vào bản chất vấn đề, nâng cao năng suất và tạo ra nhiều đòn bẩy nhất có thể. Tôi học được từ cuốn The Effective Engineer rằng hiệu quả không chỉ đến từ việc nâng cao năng lực cá nhân, mà còn đến từ việc lựa chọn những hoạt động có tính đòn bẩy cao. Với tôi, chia sẻ kiến thức là một trong những hoạt động như vậy, vì nó không chỉ giúp bản thân hệ thống hóa lại những gì đã học, mà còn có thể giúp nhiều người khác cùng phát triển.

Tôi mong rằng đây sẽ là nguồn tài liệu tham khảo chất lượng với các bạn.

Bài viết

Xem tất cả bài viết →

Hướng dẫn setup Dev Container cho mọi dự án

Mệt mỏi vì cảnh “máy tôi chạy được nhưng máy anh lại lỗi”? Khám phá cách cấu hình Dev Container để đồng nhất môi trường phát triển (Go, Docker, DB) cho cả team, giúp thành viên mới onboard dự án chỉ trong một cú click. Dẫn nhập Tôi không biết mọi người giống như tôi không? Thông thường khi bắt đầu dev một dự án mới hay cài lại hệ điều hành (Ubuntu) thì tôi phải đối mặt với hàng tá thứ để setup môi trường chạy: ...

23/05/2026

Go Memory Allocation là gì? Cách Go quản lý bộ nhớ và tối ưu RAM

Khám phá cách Go quản lý bộ nhớ và các kỹ thuật tối ưu hóa giúp tiết kiệm RAM, tăng hiệu năng. Trong việc lập trình, đặc biệt là Go, thông thường ta sẽ không để ý quá nhiều khi khởi tạo biến, do Go đã có trình thu gom rác tự động rồi. Dần dà, ta không còn quan tâm đến việc liệu khởi tạo biến có gây áp lực lên trình dọn rác của Go hay không? Biến nào sẽ được lưu trên stack? Biến nào thì lưu trên heap? Liệu sự vô tâm của ta có làm lãng phí tài nguyên hệ thống hay không? ...

22/03/2026

Memory Alignment là gì?

Trong Go, size thực tế của struct không chỉ là tổng size các field. Compiler sẽ chèn padding để bảo đảm memory alignment, nên thứ tự khai báo field có thể làm tổng size thay đổi. Sắp xếp field hợp lý giúp giảm lãng phí bộ nhớ và đôi khi cải thiện hiệu quả cache. Dẫn nhập Ta có bao giờ để ý tới size của class và struct chưa? Giả dụ ta có struct S như sau, bạn đọc đoán xem size của struct S là bao nhiêu? ...

18/03/2026

Triển khai blockchain cơ bản from scratch

Đối với mình, blockchain là một lĩnh vực khá thú vị. Nó là một công nghệ khá mới, giải quyết nhiều vấn đề về niềm tin, chi phí,… Định nghĩa Nếu bạn search trên google thì sẽ có rất nhiều bài viết nói về định nghĩa của blockchain, nhưng để tóm gọn về định nghĩa blockchain thì nó là một loại cơ sở dữ liệu đặc biệt, phân tán, tất cả mọi người đều sở hữu nó nhưng gần như không thể thay đổi được nó. Về mặt lý thuyết thì bạn có thể thay đổi thông tin được lưu nhưng nó cực kì khó khăn và gần như là không thể. ...

06/07/2025

Sách

Xem tất cả sách →