Tôi đã xem qua các điều kiện sau đây trong một chương trình mà tôi đã tiếp quản từ một nhà phát triển khác:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Tôi tin rằng mã này là dư thừa và xấu, vì vậy tôi đã thay đổi nó thành cái mà tôi nghĩ là một phép gán boolean đơn giản dựa trên so sánh:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Khi thấy điều này, một người nào đó đang xem lại mã của tôi đã nhận xét rằng mặc dù thay đổi của tôi là đúng về mặt chức năng, nhưng nó có thể khiến người khác nhầm lẫn khi nhìn vào nó. Ông tin rằng việc sử dụng một toán tử ternary làm cho nhiệm vụ này rõ ràng hơn, trong khi tôi không thích việc thêm mã dự phòng:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Lý luận của ông là làm một việc gì đó theo cách ngắn gọn nhất là không đáng, nếu điều đó khiến một nhà phát triển khác phải dừng lại và giải đố chính xác những gì bạn đã làm.
Câu hỏi thực sự ở đây là phương pháp nào trong ba phương pháp gán giá trị này cho boolean obj.NeedsChange
là rõ ràng nhất và dễ bảo trì nhất?