16
เกิดอะไรขึ้นกับความคิดเห็นที่อธิบายรหัสที่ซับซ้อน?
ผู้คนมากมายอ้างว่า "ความคิดเห็นควรอธิบาย" ทำไม "แต่ไม่ใช่" เป็นอย่างไร " บางคนบอกว่า "รหัสควรเป็นเอกสารด้วยตนเอง" และความคิดเห็นควรหายาก โรเบิร์ตซี. มาร์ตินอ้างว่า (พูดซ้ำตามคำพูดของฉัน) บ่อยครั้งที่ "ความคิดเห็นเป็นการขอโทษสำหรับการเขียนโค้ดที่ไม่ดี" คำถามของฉันมีดังต่อไปนี้: มีอะไรผิดปกติในการอธิบายอัลกอริทึมที่ซับซ้อนหรือโค้ดที่ยาวและซับซ้อนพร้อมความคิดเห็นเชิงอธิบาย ด้วยวิธีนี้แทนที่จะเป็นนักพัฒนาคนอื่น ๆ (รวมถึงตัวคุณเอง) ที่ต้องอ่านอัลกอริธึมทีละบรรทัดเพื่อหาว่ามันทำอะไรพวกเขาสามารถอ่านความคิดเห็นเชิงอธิบายที่เป็นมิตรที่คุณเขียนเป็นภาษาอังกฤษธรรมดา ภาษาอังกฤษได้รับการออกแบบเพื่อให้มนุษย์เข้าใจได้ง่าย อย่างไรก็ตาม Java, Ruby หรือ Perl ได้รับการออกแบบมาเพื่อสร้างความสมดุลระหว่างความสามารถในการอ่านของมนุษย์และความสามารถในการอ่านคอมพิวเตอร์ดังนั้นจึงทำให้ความสามารถในการอ่านข้อความของมนุษย์ลดลง มนุษย์สามารถเข้าใจภาษาอังกฤษได้เร็วขึ้นมากว่าเขา / เธอสามารถเข้าใจรหัสด้วยความหมายเดียวกัน (ตราบใดที่การดำเนินการนั้นไม่สำคัญ) ดังนั้นหลังจากเขียนโค้ดที่ซับซ้อนซึ่งเขียนด้วยภาษาการเขียนโปรแกรมที่มนุษย์สามารถอ่านได้บางส่วนทำไมไม่เพิ่มความคิดเห็นเชิงอธิบายที่กระชับและอธิบายการทำงานของโค้ดในภาษาอังกฤษที่เป็นมิตรและเข้าใจได้? บางคนจะพูดว่า "รหัสไม่ควรเข้าใจยาก", "ทำให้ฟังก์ชั่นเล็ก ๆ ", "ใช้ชื่อที่สื่อความหมาย", "อย่าเขียนรหัสสปาเก็ตตี้" แต่เราทุกคนรู้ว่าไม่เพียงพอ นี่เป็นเพียงแนวทาง - สิ่งสำคัญและมีประโยชน์ - แต่ไม่เปลี่ยนความจริงที่ว่าอัลกอริทึมบางอย่างมีความซับซ้อน และดังนั้นจึงยากที่จะเข้าใจเมื่ออ่านพวกเขาทีละบรรทัด เป็นเรื่องที่ไม่ดีหรือไม่ที่จะอธิบายอัลกอริทึมที่ซับซ้อนพร้อมความคิดเห็นสองสามบรรทัดเกี่ยวกับการทำงานทั่วไป เกิดอะไรขึ้นกับการอธิบายรหัสที่ซับซ้อนพร้อมความคิดเห็น