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 - Interface Satisfaction

Trong Golang, việc implement interface không phải là bắt buộc và không cần phải chỉ rõ là một struct đang thực hiện implement interface nào, mà việc đó được thực hiện ngầm định. Khi struct của bạn đủ các method của interface thì nó sẽ được coi là implement interface đó. Chính điều này giúp Go có khả năng flexible cách chúng ta implement một interface cũng như gây khó khăn khi chúng ta muốn tìm ra các struct nào implement interface đó. Vì vậy, bài viết này sẽ đi qua hai phần, phần đầu là tìm hiểu về cách tìm ra các struct nào implement interface đó, phần hai là một thủ thuật nhỏ để bạn có thể truyền implement interface vào một function của thư viện mà bạn viết. ...

20/06/2025

Tối ưu hiệu suất .NET Core In-Process và Out-of-Process

Trong quá trình phát triển phần mềm, việc tối ưu hiệu suất luôn là vấn đề được quan tâm khi triển khai, đặc biệt trong .Net Core. Việc bạn lựa chọn các hosting model nào để chạy sẽ ảnh hưởng quan trọng đến hiệu suất của ứng dụng. Trong .Net có 2 phương pháp để hosting là In Process và Out Of Process. Với từng model sẽ có những ưu và nhược điểm riêng để phù hợp cho nhiều trường hợp khác nhau. Nhưng trước hết, ta hãy thử nghiên cứu về các khái niệm liên quan đến hosting model nhé. ...

10/11/2024

Lazy giúp khởi tạo trong multithread

Ở bài viết Singleton Pattern, tôi có trình bày về một cách đơn giản để tạo Singleton Pattern trong môi trường thread-safe bằng cách sử dụng Lazy. Trong .Net, đây là một class được dùng để khởi tạo an toàn trong môi trường đa luồng. Lazy là gì? Lazy<T> là một lớp giúp bạn trì hoãn việc tạo đối tượng cho đến khi sử dụng đối tượng đó lần đầu tiên, chúng ta có thể gọi là Lazy Initialization hay là khởi tạo chậm đều được. ...

11/08/2024