ฉันมักจะพิจารณาความคิดเห็นดังกล่าวเป็นการปฏิบัติที่ไม่ดีและฉันคิดว่าข้อมูลประเภทนี้เป็นของ SCM ส่งบันทึก มันแค่ทำให้อ่านรหัสยากขึ้นในกรณีส่วนใหญ่
อย่างไรก็ตามฉันยังคงทำอะไรแบบนี้กับการแก้ไขเฉพาะบางประเภท
กรณีที่ 1 - ภารกิจ
หากคุณใช้ IDE เช่น Eclipse, Netbeans, Visual Studio (หรือมีวิธีการค้นหาข้อความบนโค้ดเบสของคุณด้วยสิ่งอื่น) บางทีทีมของคุณอาจใช้ "แท็กความคิดเห็น" หรือ "แท็กงาน" ในกรณีนี้จะมีประโยชน์
ฉันต้องการตรวจสอบรหัสเป็นครั้งคราวเพิ่มสิ่งต่อไปนี้:
// TOREVIEW: [2010-12-09 haylem] marking this for review because blablabla
หรือ:
// FIXME: [2010-12-09 haylem] marking this for review because blablabla
ฉันใช้แท็กงานที่กำหนดเองที่แตกต่างกันที่ฉันเห็นใน Eclipse ในมุมมองงานสำหรับสิ่งนี้เพราะการมีบางสิ่งในบันทึกการกระทำเป็นสิ่งที่ดี แต่ไม่เพียงพอเมื่อคุณมีผู้บริหารถามคุณในการตรวจสอบการประชุม และเล็ดรอดผ่าน ดังนั้นในเรื่องเร่งด่วนหรือโค้ดที่น่าสงสัยจริงๆนี่เป็นตัวเตือนเพิ่มเติม (แต่โดยปกติฉันจะเก็บความคิดเห็นไว้สั้น ๆและตรวจสอบบันทึกการกระทำเพราะนั่นคือสิ่งที่การเตือนความจำอยู่ที่นี่ดังนั้นฉันจึงไม่เกะกะรหัสเกินไป มาก).
กรณีที่ 2 - แพทช์ Libs ของบุคคลที่สาม
หากผลิตภัณฑ์ของฉันต้องการแพคเกจโค้ดของบุคคลที่สามเป็นแหล่งที่มา (หรือไลบรารี แต่สร้างขึ้นใหม่จากแหล่งที่มา) เนื่องจากจำเป็นต้องได้รับการติดตั้งด้วยเหตุผลบางอย่างเราจะจัดทำเอกสารแพตช์ในเอกสารแยกต่างหาก สำหรับการอ้างอิงในอนาคตและซอร์สโค้ดมักจะมีความคิดเห็นคล้ายกับ:
// [PATCH_START:product_name]
// ... real code here ...
// [PATCH_END:product_name]
กรณีที่ 3 - การแก้ไขที่ไม่ชัดเจน
อันนี้ค่อนข้างขัดแย้งและใกล้ชิดกับสิ่งที่นักพัฒนาอาวุโสของคุณขอ
ในผลิตภัณฑ์ที่ฉันทำงานในขณะนี้บางครั้งเรา(ไม่แน่นอนสิ่งทั่วไป) มีความคิดเห็นเช่น:
// BUGFIX: [2010-12-09 haylem] fix for BUG_ID-XYZ
เราจะทำเช่นนี้หากแก้ไขข้อบกพร่องไม่ชัดเจนและรหัสอ่านผิดปกติ กรณีนี้อาจเป็นปัญหาสำหรับเบราว์เซอร์ที่แปลกประหลาดหรือแก้ไข CSS ที่คลุมเครือที่คุณจำเป็นต้องใช้เนื่องจากมีข้อบกพร่องของเอกสารในผลิตภัณฑ์ ดังนั้นโดยทั่วไปเราจะเชื่อมโยงไปยังแหล่งเก็บข้อมูลปัญหาภายในของเราซึ่งจะมีการให้เหตุผลโดยละเอียดเกี่ยวกับตัวแก้ไขบั๊กและพอยน์เตอร์กับเอกสารของข้อผิดพลาดของผลิตภัณฑ์ภายนอก (เช่นคำแนะนำด้านความปลอดภัยสำหรับข้อบกพร่องของ Internet Explorer 6 หรือ อะไรแบบนั้น).
แต่ดังที่กล่าวมามันค่อนข้างหายาก และด้วยแท็กงานเราสามารถใช้งานสิ่งเหล่านี้เป็นประจำและตรวจสอบว่าการแก้ไขแปลก ๆ เหล่านี้ยังคงมีเหตุผลหรือสามารถยุติได้ (ตัวอย่างเช่นหากเราทิ้งการสนับสนุนสำหรับผลิตภัณฑ์บั๊กกี้ที่ทำให้เกิดข้อผิดพลาดในตอนแรก)
นี่เป็นเพียงตัวอย่างในชีวิตจริง
ในบางกรณีมันดีกว่าไม่มีอะไร :)
ฉันเพิ่งเจอคลาสการคำนวณทางสถิติขนาดใหญ่ใน codebase ของฉันซึ่งความคิดเห็นส่วนหัวอยู่ในรูปแบบของการเปลี่ยนแปลงที่มี yadda yadda ปกติ: ผู้ตรวจทานวันที่บั๊ก ID
ตอนแรกฉันนึกถึงการทิ้ง แต่ฉันสังเกตว่ารหัสข้อผิดพลาดไม่เพียง แต่ตรงกับแบบแผนของตัวติดตามปัญหาปัจจุบันของเรา แต่พวกเขาไม่ตรงกับตัวติดตามตัวใดตัวหนึ่งที่ใช้ก่อนที่ฉันจะเข้าร่วม บริษัท ดังนั้นฉันจึงพยายามอ่านรหัสและทำความเข้าใจกับสิ่งที่ชั้นเรียนกำลังทำอยู่ (ไม่ใช่นักสถิติ) และพยายามที่จะขุดรายงานข้อบกพร่องเหล่านี้ เมื่อมันเกิดขึ้นพวกเขาก็ค่อนข้างสำคัญและจะทำให้ชีวิตของคนต่อไปในการแก้ไขไฟล์โดยไม่ทราบว่าพวกเขาค่อนข้างน่ากลัวเพราะมันจัดการกับปัญหาความแม่นยำเล็กน้อยและกรณีพิเศษตามความต้องการเฉพาะที่ปล่อยออกมาจากลูกค้าเดิม . บรรทัดล่างถ้าสิ่งเหล่านี้ไม่ได้อยู่ในนั้นฉันจะไม่รู้จัก หากพวกเขาไม่ได้อยู่ที่นั่นและฉันมีความเข้าใจที่ดีขึ้นของชั้นเรียน
บางครั้งมันก็ยากที่จะติดตามความต้องการเก่า ๆ เช่นนี้ ในท้ายที่สุดสิ่งที่ฉันทำก็ยังคงลบส่วนหัว แต่หลังจากแอบด้อมในความคิดเห็นบล็อกก่อนที่แต่ละฟังก์ชั่นการฟ้องร้องอธิบายว่าทำไมการคำนวณ "แปลก" เหล่านี้เนื่องจากพวกเขาเป็นคำขอเฉพาะ
ดังนั้นในกรณีที่ฉันยังถือว่าการปฏิบัติที่ไม่ดีเหล่านี้ แต่เด็กผู้ชายฉันมีความสุขที่ dev ดั้งเดิมไม่ได้ใส่ไว้ในอย่างน้อย! จะดีกว่าที่จะแสดงความคิดเห็นรหัสแทนอย่างชัดเจน แต่ฉันเดาว่าดีกว่าไม่มีอะไร