Dưới đây là quan điểm của tôi. Mã sử dụng cờ:
...
if (dogIsBarking && smellsBad) {
cleanupNeeded = true;
}
doOtherStuff();
... many lines later
if (cleanupNeeded) {
startCleanup();
}
...
Rất ô uế. Các lập trình viên chỉ đơn giản là xảy ra để mã trong bất cứ thứ tự tâm trí của mình nói với anh ta. Ông chỉ cần thêm mã tại một nơi ngẫu nhiên để nhắc nhở bản thân rằng dọn dẹp là cần thiết sau này ... Tại sao ông không làm điều này:
...
doOtherStuff();
... many lines later
if (dogIsBarking && smellsBad) {
startCleanup();
}
...
Và, sau lời khuyên từ Robert Martin (Mã sạch), có thể cấu trúc luận vào phương thức có ý nghĩa hơn:
...
doSomeStuff();
... many lines later
if (dogTookADump()) {
startCleanup();
}
...
boolean dogTookADump() {
return (dogIsBarking && smellsBad);
}
Vì vậy, tôi đã thấy rất nhiều quy tắc đơn giản như trên có thể được theo dõi, nhưng mọi người vẫn không thêm lý do và cờ nào! Bây giờ, có những trường hợp hợp pháp, nơi cờ có thể là cần thiết, nhưng đối với hầu hết các trường hợp, họ là một trong những phong cách mà các lập trình viên đang tiếp quản từ quá khứ.
Nguồn
2016-04-18 18:25:33
điều này có vẻ như mã hóa kinh dị :) tôi tiếp tục thể hiện sự phân biệt của tôi về loại mã hóa này trong mọi câu hỏi tôi có thể tìm thấy liên quan đến điều này. Nếu (điều kiện) {return true;} else {return false;} OMG! –
@MasterPeter: Tôi đồng ý, trên thực tế tôi đã liệt kê rằng đó là một trong những "lập trình viên thiếu hiểu biết" của tôi peeves: http://stackoverflow.com/questions/423823. –
@Brian: Tôi có thể đã đạt được điều đó trước khi bạn http://stackoverflow.com/questions/423823/whats-your-favorite-programmer-ignorance-pet-peeve/424005#424005 –