นี่คือสิ่งที่ฉันทำมากเมื่อเร็ว ๆ นี้
ตัวอย่าง:
setCircle(circle, i, { current }) {
if (i == current) {
circle.src = 'images/25CE.svg'
circle.alt = 'Now picking'
} else if (i < current) {
circle.src = 'images/25C9.svg'
circle.alt = 'Pick failed'
} else if (i > current) {
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
}
บ่อยครั้งที่บันได if / else มีความซับซ้อนมากกว่านี้ ...
ดูข้อสุดท้าย? มันซ้ำซ้อน บันไดควรจะจับเงื่อนไขที่เป็นไปได้ในท้ายที่สุด ดังนั้นจึงสามารถเขียนใหม่เช่นนั้น:
setCircle(circle, i, { current }) {
if (i == current) {
circle.src = 'images/25CE.svg'
circle.alt = 'Now picking'
} else if (i < current) {
circle.src = 'images/25C9.svg'
circle.alt = 'Pick failed'
} else {
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
}
นี่คือวิธีที่ฉันใช้ในการเขียนโค้ด แต่ฉันไม่ชอบสไตล์นี้ การร้องเรียนของฉันคือเงื่อนไขภายใต้รหัสส่วนสุดท้ายจะถูกดำเนินการไม่ชัดเจนจากรหัส ฉันจึงเริ่มเขียนเงื่อนไขนี้อย่างชัดเจนเพื่อให้ชัดเจนยิ่งขึ้น
อย่างไรก็ตาม:
- การเขียนเงื่อนไขสุดท้ายที่ครบถ้วนสมบูรณ์เป็นความคิดของฉันอย่างชัดเจนและฉันมีประสบการณ์ที่ไม่ดีกับความคิดของตัวเอง - โดยปกติแล้วคนมักจะตะโกนใส่ฉันเกี่ยวกับสิ่งที่น่ากลัวที่ฉันทำอยู่ - และ (บางครั้งมาก) ในภายหลัง ก่อให้เกิดผลลัพธ์;
- หนึ่งคำใบ้ว่าทำไมนี่อาจเป็นความคิดที่ไม่ดี: ไม่สามารถใช้ได้กับ Javascript แต่ในภาษาอื่น ๆ คอมไพเลอร์มักจะออกคำเตือนหรือแม้กระทั่งข้อผิดพลาดเกี่ยวกับการควบคุมการเข้าถึงจุดสิ้นสุดของฟังก์ชั่น การให้คำแนะนำบางอย่างเช่นนั้นอาจไม่ได้รับความนิยมมากเกินไปหรือฉันทำผิด
- คอมไพเลอร์ทำให้บางครั้งฉันเขียนเงื่อนไขสุดท้ายในความคิดเห็น แต่ฉันคิดว่าการทำเช่นนั้นน่ากลัวเพราะความคิดเห็นซึ่งแตกต่างจากรหัสไม่มีผลต่อความหมายของโปรแกรมจริง:
} else { // i > current
circle.src = 'images/25CB.svg'
circle.alt = 'Pick chance'
}
ฉันพลาดอะไรไปรึเปล่า? หรือว่าตกลงที่จะทำสิ่งที่ฉันอธิบายหรือมันเป็นความคิดที่ไม่ดี?