Các phương pháp boolean có nên luôn luôn ở dạng khẳng định, ngay cả khi chúng sẽ chỉ được sử dụng ở dạng phủ định?
Nói rằng tôi muốn kiểm tra xem một thực thể có tồn tại trước khi tạo một thực thể hay không, đối số của tôi là hình thức đầu tiên bên dưới tốt hơn hình thức thứ hai, cho dù phương thức đó có được sử dụng ở dạng khẳng định hay không.
Tóm lại, tôi thấy if(!affirmative)
dễ đọc hơn if(negative)
. Tôi có một đồng nghiệp không đồng ý, suy nghĩ?
Mẫu đầu tiên:
int entity_id = 42;
if(!entity_exists(entity_id)) create_entity(entity_id);
Dạng thứ hai:
int entity_id = 42;
if(entity_not_exist(entity_id)) create_entity(entity_id);
!
nhân vật rất nhiều lần khiến tôi hiểu sai mã cho đến khi tôi đọc lại nó. Vì vậy, tôi có thể đồng ý nhiều hơn với đồng nghiệp của bạn. Tôi thích hình thức đánh giá là đúng khi bạn kiểm tra nó.
if (!exists) create()
có thể được coi là một thực tiễn xấu trong nhiều ngôn ngữ / khung, vì nó có xu hướng không an toàn cho chuỗi. Thông thường, cách tiếp cận ưa thích là gọi create()
và xử lý các trường hợp ngoại lệ cụ thể hoặc trả về mã nói rằng thực thể đã tồn tại. Tất nhiên đây không phải là một câu trả lời cho câu hỏi thực tế (đó là lý do tại sao nó chỉ là một nhận xét).
if (not entity_exists(entity_id))