ฉันเชื่อว่ายิ่งวิธีมีความชัดเจนมากเท่าไรก็ยิ่งสามารถอ่านได้มากขึ้นเท่านั้นดังนั้นรหัสที่สามารถบำรุงรักษาได้ พิจารณาสองกรณีต่อไปนี้:
กรณีที่ 1:
void showCustomerData(customerId){
Customer customer = getCustomer(CustomerId);
customerPanel.setVisible(customer.isCustomerEnabled());
}
กรณีที่ 2:
void showCustomerData(customerId){
Customer customer = getCustomer(CustomerId);
//always show customer panel
customerPanel.setVisible(true);
}
ในกรณีแรกมันชัดเจนว่าฟังก์ชั่น "setVisible" กำลังทำอะไร แต่ถ้าคุณต้องการอ่านคุณจะพูดว่า:
ตั้งค่าพาเนลลูกค้าให้มองเห็นได้หากลูกค้าเปิดใช้งานหรือตั้งเป็นซ่อนหากลูกค้าปิดใช้งาน
ในขณะที่มันเป็นคำอธิบายเพิ่มเติมที่จะพูดว่า:
- ตรวจสอบสถานะของลูกค้า:
- หากลูกค้าถูกเปิดใช้งานให้แสดงพาเนลของลูกค้า
- มิฉะนั้นซ่อนไว้
ซึ่งจะเปลี่ยนฟังก์ชัน "Case 1" เป็นดังต่อไปนี้:
void showCustomerData(customerId){
Customer customer = getCustomer(CustomerId);
if(customer.isCustomerEnabled()){
customerPanel.Show();
}
else{
customerPanel.Hide();
}
}
มันสร้างรหัสเพิ่มเติม แต่สามารถอ่านได้มากขึ้น
กรณีที่สองมีข้อบกพร่องที่เห็นได้ชัดคือคุณรู้อยู่แล้วว่าคุณต้องการแสดงพาเนลดังนั้นทำไมไม่ใช้ฟังก์ชั่น "แสดง"
ฉันไม่ได้บอกว่าการใช้ "setVisible" ผิดอย่างแน่นอน แต่มันก็เกิดความสับสนเมื่อคุณพยายามอ่านโค้ดที่คุณไม่ได้เขียนเมื่อเวลาผ่านไปและมันไม่สอดคล้องกับกฎ "A function ควรดำเนินการเพียงครั้งเดียว"