Singleton Pattern là gì?

Khi áp dụng một design pattern tốt sẽ giúp bạn tiết kiệm thời gian và công sức sau này. Bạn có thể tái sử dụng code, mở rộng khi cần thiết. Bạn có từng nhớ lần đọc code cuối cùng không? Bạn có thấy code của bạn dễ dàng chỉnh sửa mở rộng không? Nếu không, cùng tôi tìm hiểu về design pattern và cách áp dụng nó vào trong dự án của bạn. ...

27/09/2024

Extension trong C#?

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về phương thức Extension trong C#. Đây là một phương thức rất hiệu quả trong việc thể hiện code một cách gọn gàng và dễ đọc hơn. Do đó, bạn có thể mở rộng class một cách thoải mái mà không cần lo ngại về việc thay đổi logic hay ảnh hưởng tới các class cũ. Phương thức Extension là gì? Phương thức này bắt đầu được thêm vào từ C# 3.0 và nó đã trở thành công cụ đắc lực giúp lập trình viên có được những đoạn code ngắn gọn và hiệu quả hơn. Trước đó, để mở rộng một class, developer phải kế thừa từ class cũ. ...

24/09/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

Lưu trữ dữ liệu tốn ít tài nguyên hơn dựa vào bit trong CSharp

Việc sử dụng bit trong C/C++ có lẽ các bạn đã quá quen thuộc rồi. Trong C/C++ có 1 phần khá hay là bit fields, bạn có thể tạo được nhiều biến chỉ với 1 byte, đương nhiên là trong khuôn khổ số bit đó thể hiện. Nay mình lên thêm một bài dành cho C#. Nói 1 cách chính xác thì nó không giống như bit fields trong C/C++. Nó không tối ưu size của biến trong quá trình runtime, nó dùng để tối ưu khi sử dụng để lưu trữ dữ liệu. Do đó, bài viết này không mô tả khái niệm bit fields mà là thủ thuật sử dụng bit để tối ưu dữ liệu để lưu trữ. Chúng ta sẽ đi xuyên suốt bài viết này và cùng so sánh điểm khác biệt giữa C/C++ và C#. ...

06/08/2024