🚩 Problem
Trong lập trình, đôi khi ta viết những cấu trúc điều kiện lồng nhau như sau:
if (a)
{
if (b)
{
statement;
}
}
Cách viết này hoạt động được — nhưng kém rõ ràng, khó đọc, và dễ sinh lỗi khi điều kiện phức tạp hơn.
Trong các dự án lớn, việc lồng nhiều if như vậy khiến code trở nên rối rắm, đặc biệt khi cần kiểm tra nhiều điều kiện hoặc thêm logic mới.
✅ Solution — Combine Conditions
Một cách viết đơn giản và rõ ràng hơn là kết hợp các điều kiện:
if (a && b)
{
statement;
}
Cách này giúp:
- Code ngắn gọn và dễ đọc hơn.
- Dễ bảo trì và mở rộng.
- Giảm rủi ro sai logic khi quên xử lý các trường hợp lồng nhau.
💻 Example
Giả sử bạn có đoạn code kiểm tra đăng nhập và quyền quản trị:
Old Way
public void Login()
{
bool isLoggedIn = true; // Giả lập người dùng đã đăng nhập
bool hasAdminPrivileges = true; // Giả lập người dùng có quyền admin
if (isLoggedIn)
{
if (hasAdminPrivileges)
{
// Cấp quyền truy cập trang admin
Console.WriteLine("Access granted to the admin page.");
}
}
else
{
Console.WriteLine("Access denied. User is not logged in.");
}
}
Better Way — Combine Conditions
public void Login_Better_Combine()
{
bool isLoggedIn = true; // Giả lập người dùng đã đăng nhập
bool hasAdminPrivileges = true; // Giả lập người dùng có quyền admin
if (isLoggedIn && hasAdminPrivileges)
{
// Cấp quyền truy cập trang admin
Console.WriteLine("Access granted to the admin page.");
}
else
{
Console.WriteLine("Access denied. Either the user is not logged in or does not have admin privileges.");
}
}
Demo
void Main()
{
Login();
Login_Better_Combine();
}
💬 Kết luận
Khi bạn kết hợp các điều kiện hợp lý, bạn không chỉ giúp code ngắn gọn và rõ ràng hơn, mà còn khiến nó ít dễ sai hơn — đó chính là tinh thần của Defensive Programming.
🧩 Hãy luôn đặt mình vào vị trí người bảo vệ hệ thống: viết code sao cho người khác (và chính bạn trong tương lai) khó có thể phá hỏng nó.