Nếu bạn đã làm với C# và ASP.NET một thời gian, chắc hẳn đã có những lúc ngồi chờ build, tìm một lỗi null reference suốt buổi chiều hay viết đi viết lại cùng một đoạn code. Thủ thuật .NET hằng ngày giúp bạn xử lý những việc nhỏ đó nhanh hơn. Bài này tổng hợp các mẹo mà đội ngũ vẫn dùng trong dự án backend, với mục tiêu thực dụng: làm ít việc lặp lại hơn, giữ mạch làm việc liền lạc hơn.
Vì sao thủ thuật .NET hằng ngày lại tạo khác biệt
Năng suất của một lập trình viên không chỉ đến từ việc viết code nhanh. Phần lớn thời gian đi vào việc đọc code cũ, tìm nguyên nhân lỗi và chờ hệ thống phản hồi. Những thói quen nhỏ tích lũy lại có thể tiết kiệm thời gian đáng kể mỗi tuần.
Vì vậy, thay vì tìm một “phép màu”, bạn nên bắt đầu từ những thói quen đơn giản. Mỗi thủ thuật dưới đây đều ngắn, dễ áp dụng và có lý do rõ ràng.
Dùng phím tắt và snippet trong Visual Studio
Visual Studio có rất nhiều phím tắt mà nhiều bạn mới chỉ dùng vài cái. Ba phím đáng nhớ nhất là Ctrl + . để mở gợi ý sửa lỗi, Ctrl + Shift + F để tìm kiếm trong toàn solution và F12 để nhảy tới định nghĩa.
Ngoài ra, snippet là thứ rất đáng học. Gõ prop rồi nhấn Tab sẽ sinh ra một property hoàn chỉnh. Gõ ctor để tạo constructor. Khi viết một lớp service lặp lại cấu trúc giống nhau, các snippet này giúp giảm đáng kể thao tác.
Pattern matching và null handling gọn gàng trong C#
C# hiện đại cung cấp nhiều cú pháp giúp code ngắn mà vẫn an toàn. Thay vì viết kiểm tra null dài dòng, bạn có thể dùng toán tử ?. và ??:
Ví dụ, thay vì viết ba dòng if để lấy tên khách hàng, bạn chỉ cần một dòng: var name = customer?.Profile?.FullName ?? "Khách vãng lai";. Cách viết này vừa ngắn vừa rõ ý định.
Pattern matching với is cũng giúp code sạch hơn khi kiểm tra kiểu. Bạn viết if (obj is Order order) và dùng luôn biến order trong khối đó, không cần ép kiểu riêng.
Tối ưu truy vấn LINQ và Entity Framework
LINQ rất tiện, nhưng dễ tạo ra truy vấn chậm nếu dùng thiếu cẩn thận. Lỗi phổ biến nhất là gọi ToList() quá sớm, khiến toàn bộ dữ liệu được kéo về bộ nhớ trước khi lọc. Hãy giữ truy vấn ở dạng IQueryable cho đến bước cuối cùng.
Một mẹo khác là dùng AsNoTracking() cho các truy vấn chỉ đọc. Entity Framework không cần theo dõi thay đổi trên những đối tượng này, nên tốc độ và mức tiêu thụ bộ nhớ thường tốt hơn.
Ngoài ra, hãy kiểm tra câu SQL thực tế được sinh ra. Bạn có thể bật logging của EF để xem câu lệnh. Nếu thấy nhiều truy vấn nhỏ lặp lại, đó có thể là dấu hiệu của vấn đề N+1. Khi đó, hãy dùng Include hoặc viết lại truy vấn để lấy dữ liệu liên quan một lần.
Debug thông minh hơn với breakpoint có điều kiện
Thay vì đặt breakpoint rồi bấm tiếp tục hàng chục lần, bạn có thể gắn điều kiện cho nó. Nhấp chuột phải vào breakpoint, chọn Conditions và nhập biểu thức, ví dụ order.Id == 1024. Chương trình chỉ dừng khi điều kiện đúng.
Kỹ thuật này đặc biệt hữu ích khi xử lý danh sách lớn hoặc các luồng chạy liên tục, giúp bạn tiết kiệm thời gian và tránh những lần dừng không liên quan.
Quản lý cấu hình và dependency injection gọn hơn
Với ASP.NET Core, một cấu trúc đăng ký service rõ ràng giúp việc bảo trì dễ hơn. Thay vì nhồi tất cả AddScoped và AddTransient vào Program.cs, hãy nhóm chúng theo module bằng các extension method. Khi cần thêm một tính năng mới, bạn chỉ cần gọi một dòng.
Đồng thời, hãy tách cấu hình theo môi trường bằng appsettings.Development.json và biến môi trường. Việc này giúp tránh tình huống quên đổi chuỗi kết nối khi đưa code lên máy chủ.
Lưu ý nhỏ về đo lường
Đừng tin vào cảm giác “nhanh hơn” mà không có số liệu. Trước khi tối ưu, hãy đo bằng Stopwatch hoặc công cụ profiling của Visual Studio. Nhiều khi thời gian bỏ ra tối ưu một đoạn code chỉ chiếm vài phần trăm thời gian chạy, trong khi điểm nghẽn thật nằm ở chỗ khác.
Kết lại
Thủ thuật .NET hằng ngày không cần phức tạp. Chỉ cần thành thạo công cụ, viết code gọn bằng các cú pháp hiện đại, chú ý đến truy vấn dữ liệu và đo đạc trước khi tối ưu, bạn sẽ thấy ngày làm việc nhẹ nhàng hơn. Nếu muốn đào sâu hơn, bạn có thể tham khảo cách xử lý exception đúng cách thay vì try-catch tràn lan, hoặc xem các lưu ý về debug và tối ưu mã cho dev .NET. Với những ai đang làm việc với dữ liệu, mẹo cache kết quả truy vấn để giảm tải database cũng là một hướng đáng thử.
Tham khảo thêm tài liệu chính thức về C# trên Microsoft Learn để nắm chắc các cú pháp mới nhất.


