คำถามที่น่าสนใจสำหรับนักพัฒนา
code ของระบบงานมี dead code หรือไม่ ?
คำตอบอาจจะมีหลากหลายเช่น
ไม่มีแน่นอน
น่าจะมี
ไม่มี
หรือ dead code มันคืออะไร ?
ก่อนอื่นมาทำความเข้าใจกับ dead code กันหน่อย
Code ที่ถูก execute หรือเรียกใช้งาน แต่ไม่ได้ส่งผลอะไรเลย หรือผลลัพธ์ที่ได้ ไม่ถูกนำไปใช้งานปล. Code ที่ไม่ถูก execute หรือไม่เรียกใช้งานเราเรียกว่า unreachable codeดังนั้น code เหล่านี้จึงเป็น overhead ของการทำงาน รวมทั้งการใช้งาน resource เช่น CPU และ Memory อีกด้วย แน่นอนว่า เวลา มันคือค่าใช้จ่ายที่ต้องเสียไป ดังนั้นลดมันลงซะ ลองคิดดูสิว่า ถ้าเราต้องดูแลรักษา code ที่ไม่มีประโยชน์ หรือ ไม่ใช้งาน ต้องใช้เวลามากเพียงใด
ดังนั้นนักพัฒนามาหัดลบ code กันนะ มาเริ่มกันเลย
ลบ code ที่ถูก comment ออกไปซะ
ใช้ version control แล้ว จะเก็บ code เหล่านี้ไว้ทำไม ทำไว้เพื่อดูว่า เคยทำอะไรมาบ้าง ทำไว้เพื่อเผื่อจะเอากลับมาใช้ ทำไว้เพื่อทดสอบบางสิ่งบางอย่าง แล้วลืมเอาออก [gist id="2d489695d7b21a57d1e82624920406a4" file="1.txt"]ปล. นักพัฒนาบางคนอาจจะบอกว่า เก็บไว้ก่อนนะ !! บอกเลยว่า ลบเถอะ ไม่งั้นผมจะลบให้นะ
ลบพวก Unreachable code ทิ้งซะ
[gist id="2d489695d7b21a57d1e82624920406a4" file="2.txt"] ลบเถอะนะ ที่สำคัญบางภาษามีการเตือน บางภาษาถึงกับ compile ไม่ผ่าน หรือนำเครื่องมือพวก lint หรือ Static code analysis มาใช้นะพวก Variable, Field และ Parameter ที่ไม่ใช้งานก็ลบเถอะนะ
ประกาศเท่าที่ใช้ก็พอ อย่าเผื่อ แน่นอนว่า IDE ต่าง ๆ มีการเตือนเสมอนะ แก้ซะ นั่นคือ ลบซะ เนื่องจากการแก้ไขผ่าน IDE จะปลอดภัยมาก ๆพวก method ต่าง ๆ ก็เช่นกัน ถ้าไม่ใช้ก็ลบไป
บ่อยครั้งเจอกับ method ที่ไม่ใช public method เช่น private method รวมไปถึง scope ของ class, method, variable ด้วย กำหนดให้ตรงกับที่ใช้ ไม่ใช่ว่า กำหนดให้เป็น public ทั้งหมด ดังนั้นให้ดูขอบเขตหรือscope ของการใช้งานด้วย เช่น private, protected และ publicสุดท้ายแล้ว
นักพัฒนาต้องให้ความสำคัญต่อการเขียน code ด้วย ทั้งลดความซับซ้อน ทั้งการจัดโครงสร้างที่ดี ทั้งการตรวจสอบ code ว่ามี dead code หรือไม่ เพื่อทำการแก้ไขทันที อย่าบอกว่า เดี๋ยวก่อน ( Later === Never )เขียน code ก็ยากแล้ว ดูแลรักษา code ยิ่งยากกว่า ดังนั้นลด code ที่ไม่จำเป็นออกไปเถอะนะขอให้สนุกกับการ coding ครับ Reference Websites https://dzone.com/articles/you-have-no-excuse-for-your-dead-code https://blog.ndepend.com/paying-for-dead-code/ https://blog.ndepend.com/alternatives-lines-of-code-loc/