มันจะดีกว่ามากหากตระหนักว่าการพูดถึงบรรทัดจริงของโค้ดนั้นไม่มีความหมายเลย จำนวน Lines of Code (LoC) ทางกายภาพจึงขึ้นอยู่กับรูปแบบการเข้ารหัสซึ่งอาจแตกต่างกันไปตามลำดับความสำคัญจากผู้พัฒนารายหนึ่งไปยังอีกคนหนึ่ง
ในโลก. NET มีวิธีที่สะดวกในการนับ LoC จุดลำดับ จุดลำดับคือหน่วยของการดีบักเป็นส่วนของรหัสที่เน้นด้วยสีแดงเข้มเมื่อวางจุดพัก ด้วยจุดลำดับเราสามารถพูดถึงLoC เชิงตรรกะและเมตริกนี้สามารถเปรียบเทียบกับภาษา. NET ต่างๆได้ เมตริกโค้ด LoC เชิงตรรกะได้รับการสนับสนุนโดยเครื่องมือ. NET ส่วนใหญ่รวมถึงเมตริกโค้ด VisualStudio, NDepend หรือ NCover
ตัวอย่างเช่นนี่คือวิธี 8 LoC (จุดเริ่มต้นและจุดสิ้นสุดของวงเล็บจะไม่ถูกนำมาพิจารณา):
การผลิต LoC จะต้องนับในระยะยาว บางวันคุณจะคาย LoC มากกว่า 200 LoC บางวันคุณจะใช้เวลา 8 ชั่วโมงในการแก้ไขข้อบกพร่องโดยไม่เพิ่ม LoC แม้แต่ตัวเดียว บางวันคุณจะล้างรหัสที่ตายแล้วและจะลบ LoC บางวันคุณจะใช้เวลาทั้งหมดในการปรับโครงสร้างโค้ดที่มีอยู่และไม่ได้เพิ่ม LoC ใหม่ใด ๆ ลงในผลรวม
โดยส่วนตัวแล้วฉันจะนับ LoC เดียวในคะแนนประสิทธิผลของตัวเองก็ต่อเมื่อ:
- ครอบคลุมโดยการทดสอบหน่วย
- มีความเกี่ยวข้องกับสัญญารหัสบางประเภท (ถ้าเป็นไปได้แน่นอนว่า LoC ทั้งหมดไม่สามารถตรวจสอบได้ตามสัญญา)
ในสภาพนี้คะแนนส่วนบุคคลของฉันในช่วง 5 ปีที่เข้ารหัสเครื่องมือสำหรับนักพัฒนา NDepend NET เป็นค่าเฉลี่ยของ80 LoC ทางกายภาพต่อวันโดยไม่ต้องเสียสละใด ๆ หมายความว่าคุณภาพรหัส จังหวะยังคงอยู่และฉันไม่เห็นมันลดลงในเร็ว ๆ นี้ สรุปแล้ว NDepend เป็นฐานรหัส C # ที่ปัจจุบันมีน้ำหนักประมาณ 115K LoC ทางกายภาพ
สำหรับผู้ที่เกลียด LoC นับ (ผมเห็นมากของพวกเขาในความคิดเห็นที่นี่) ผมยืนยันว่าครั้งหนึ่งเคยสอบเทียบอย่างเพียงพอ LoC นับเป็นเครื่องมือที่มีการประมาณค่าที่ดีเยี่ยม หลังจากเขียนโค้ดและวัดคุณสมบัติมากมายที่ทำได้ในบริบทเฉพาะของการพัฒนาฉันก็มาถึงจุดที่ฉันสามารถประมาณขนาดของคุณสมบัติสิ่งที่ต้องทำใน LoC ได้อย่างแม่นยำและถึงเวลาที่ฉันจะต้องส่งมันไปยังการผลิต