เขียนโค้ดแล้วและใช้ความพยายาม
นอกจากนี้ยังไม่จำเป็น หากคุณไม่ใช้มันเพื่ออะไรก็ตามมันก็ไร้ประโยชน์ (ตามนิยาม) ไม่ว่าจะทำอะไรหรือใช้ความพยายามไปมากแค่ไหนก็ตาม
โค้ดอาจได้รับการทดสอบในสภาพแวดล้อมที่เป็นจริง
หากไม่มีประโยชน์ก็ยังไร้ประโยชน์แม้ว่าคุณจะทำการทดสอบก็ตาม หากรหัสไม่มีประโยชน์การทดสอบก็จะไร้ประโยชน์เช่นกัน (ดังนั้นการเก็บรหัสที่แสดงความคิดเห็นไว้ที่นั่นทำให้เกิดความคลุมเครือ - คุณเก็บการทดสอบไว้หรือไม่หากคุณมีรหัสไคลเอ็นต์ของรหัสที่แสดงความคิดเห็นคุณแสดงความคิดเห็นเกี่ยวกับรหัสไคลเอ็นต์ด้วยหรือไม่ )
หากมีการจัดระเบียบที่ดี (จัดกลุ่มแยกแพ็กเกจคู่หลวม ๆ ฯลฯ ) จะไม่รบกวนคุณในการวิเคราะห์โค้ดโดยรวมหรือการปรับโครงสร้างใหม่
ไม่เป็นเช่นนั้น เครื่องมือทั้งหมดของคุณ (การควบคุมแหล่งที่มาการวิเคราะห์แบบคงที่ตัวแยกเอกสารคอมไพเลอร์ ฯลฯ ) จะทำงานช้าลงเนื่องจากต้องประมวลผลข้อมูลมากขึ้น (และส่วนที่ใหญ่กว่าหรือเล็กกว่านั้นคือสัญญาณรบกวน)
หากรหัสไม่ได้จัดระเบียบที่ดีในทางกลับกันจะทำให้การวิเคราะห์แบบคงที่การปรับโครงสร้างใหม่และอื่น ๆ ยุ่งเหยิง
คุณกำลังแนะนำสัญญาณรบกวนให้กับอินพุตเครื่องมือของคุณและหวังว่ามันจะรับมือกับมันได้อย่างถูกต้อง
จะเกิดอะไรขึ้นถ้าเครื่องมือวิเคราะห์แบบคงที่ของคุณคำนวณอัตราส่วนความคิดเห็น / รหัส คุณเพิ่งทำมันยุ่งกับบางสิ่งที่เกี่ยวข้องจนถึงเมื่อวานนี้ (หรือเมื่อใดก็ตามที่รหัสถูกแสดงความคิดเห็น)
บล็อกโค้ดที่แสดงความคิดเห็นที่เกี่ยวข้องมากที่สุดทำให้เกิดความล่าช้าในการทำความเข้าใจโค้ดสำหรับการบำรุงรักษาและการพัฒนาเพิ่มเติมและความล่าช้าดังกล่าวมักจะมีค่าใช้จ่ายสูง ถามตัวเองว่า: หากคุณต้องการเข้าใจการใช้งานฟังก์ชันคุณจะต้องพิจารณาอะไร? โค้ดที่ชัดเจนสองบรรทัดหรือโค้ดสองบรรทัดและอีกยี่สิบหกความคิดเห็นที่ไม่เป็นความจริงอีกต่อไป?
รหัสอาจถูกใช้ในอนาคต
หากเป็นเช่นนั้นคุณจะพบได้ใน SCM ของทีมที่คุณเลือก
หากคุณใช้ SCM ที่มีความสามารถและพึ่งพามันเพื่อรักษารหัสที่ตายแล้ว (แทนที่จะทำให้แหล่งที่มายุ่งเหยิง) คุณไม่ควรเห็นเพียงว่าใครเป็นผู้ลบรหัสนั้น (ผู้เขียนผู้กระทำ) แต่ด้วยเหตุผลใด (ส่งข้อความ) และอื่น ๆ มีการเปลี่ยนแปลงไปพร้อมกับมัน (ส่วนต่างที่เหลือสำหรับคอมมิตนั้น)
เมื่อลบผู้เขียนอาจรู้สึกไม่สบายใจ
ดังนั้น?
คุณคือ (ฉันถือว่า) เป็นทีมนักพัฒนาทั้งหมดที่ได้รับเงินเพื่อสร้างซอฟต์แวร์ที่ดีที่สุดที่คุณรู้วิธีไม่ใช่ "ซอฟต์แวร์ที่ดีที่สุดที่คุณรู้วิธีโดยไม่ทำร้ายความรู้สึกของ X"
เป็นส่วนหนึ่งของการเขียนโปรแกรมซึ่งในที่สุดโค้ดที่เขียนขึ้นจะถูกละทิ้งไป ตัวอย่างเช่น Joel Spolsky กล่าวในช่วงหนึ่งว่าสำหรับ บริษัท ของเขาประมาณ 2% ของรหัสที่เขียนขึ้นจะเห็นการผลิต
หากคุณให้ความสำคัญกับอัตตาของนักพัฒนามากกว่าคุณภาพของฐานรหัสคุณจะเสียสละคุณภาพของผลิตภัณฑ์เพื่อ ... อะไรกันแน่? การรักษาความไม่สมบูรณ์ของเพื่อนนักพัฒนาของคุณหรือไม่? ปกป้องความคาดหวังที่ไม่เป็นจริงของเพื่อนร่วมงานของคุณ?
แก้ไข:ฉันได้เห็นเหตุผลที่ถูกต้องอย่างหนึ่งในการแสดงความคิดเห็นโค้ดในซอร์สและเป็นกรณีที่เฉพาะเจาะจงมาก: เมื่อโค้ดถูกเขียนในรูปแบบแปลก ๆ / ไม่ใช้งานง่ายและวิธีการเขียนใหม่ที่สะอาดตาจะไม่ ทำงานด้วยเหตุผลที่ละเอียดอ่อนจริงๆ นอกจากนี้ควรใช้หลังจากมีการพยายามแก้ไขปัญหาซ้ำแล้วซ้ำอีกและทุกครั้งที่พยายามนำข้อบกพร่องเดิมกลับมาใช้ใหม่ ในกรณีเช่นนี้คุณควรเพิ่มรหัสที่เข้าใจง่ายที่แสดงความคิดเห็นเป็นความคิดเห็นและอธิบายว่าเหตุใดจึงไม่ได้ผล (ดังนั้นนักพัฒนาในอนาคตจะไม่พยายามเปลี่ยนแปลงแบบเดิมอีก):
// note by <author>: the X parameter here should normally
// be a reference:
// void teleport(dinosaur& X);
// but that would require that we raise another dinosaur and
// kill it every twelve hours
// as such, the parameter is passed by value
void teleport(dinosaur X);