Optimize - Một số cách tối ưu code và performance CSharp

Nguồn: viblo.asia

Mở đầu

Trong bài viết này, chúng ta sẽ tìm hiểu một số mẹo và thủ thuật C# hữu ích về cách cải thiện chất lượng và hiệu suất khi viết code.

Đầu tiên, chúng ta sẽ tìm hiểu cách cải thiện chất lượng code của mình bằng một số mẹo liên quan đến khả năng đọc và giảm reducing nesting code.

Sau đó, chúng ta sẽ thấy một số lưu ý khi nói đến việc xử lý ngoại lệ mà chúng ta cần lưu ý. Khi code chúng ta rất hay bắt gặp các trường hợp

  • Guarding against null values: Kiểm tra các giá trị null

  • If-else statements: Lệnh if-else

  • Exception handling: Bắt exception

Cách kiểm tra null

Khá chắc rằng trong bất kỳ dự án lớn nhỏ nào chúng ta đều có đoạn check null. Nếu object return null thì exception NullReferenceException được throw. Bình thường chúng ta sẽ viết

    var product = GetProduct();
    if (product == null)
    {
        // Do something if the object is null.
    }

Một cách check null khá hay và hiệu với is và is not quả ở C#

    var product = GetProduct();
    if (product is not null)
    {
        // Do something if the object is not null.
    }

Tối ưu code với if- else

Khá loằng ngoằng. Ở đây chúng ta có thể xóa hẳn câu lệnh else ở dưới đi

Ở đây chúng ta thấy có 2 cái if lồng nhau. Để đảm bảo early return principle thì chúng ta nên viết

Gọn hơn một chút thì chúng ta nên gộp 2 câu if kia vào thành 1

Sử dụng using

Câu lệnh using đảm bảo rằng Dispose (hoặc DisposeAsync) được gọi ngay cả khi một ngoại lệ xảy ra trong khối using. Tìm hiểu thêm về using

Một cách bình thường nhất khi chúng ta sử dụng using

  • Ở C# thì chúng ta có thể bỏ luôn dấu ngoặc kép sau using nhưng thế này

Tối ưu cách đọc một Logical Expression

Ví dụ chúng ta có một hàm để check xem ký tự truyền vào có phải một chữ cái hay không

Ở C# thì chúng ta có một cách viết đơn giản hơn. Chúng ta không cần truyền nhiều lần param ch vào nữa

Xóa if-else khi check bool values

Cách viết bình thường

Đơn giản hơn

hoặc

Với switch case thì sao

Ví dụ chúng ta có một đoạn switch check xem hôm nay có phải ngày cuối tuần hay không.

Hoàn toàn có thể viết ngắn gọn lại

hoặc với C#

với C#

dùng not trong C#

Cách tối hơn khi filter exception

Ví dụ chúng ta có một đoạn filter exception 400 bad request với 404 not found

đơn giản và clear hơn khi dùng với when

Tóm lại

Ở đây mình tổng hợp một số trick thường được dùng hoặc là mình hay dùng để tối ưu code. Cho dòng code ngắn gọn dễ hiểu và performance tốt hơn trong C#.

Cảm ơn các bạn đã theo dõi

Last updated

Was this helpful?