อ่านบทความเรื่อง Honest Code ซึ่งเขียนมาตั้งแต่ปี 2005
มีใจความสำคัญว่า
Code ส่วนไหนที่ไม่ถูกเรียกใช้งานจากส่วนอื่นก็ควรลบทิ้งไปซะ
Code ส่วนไหนที่ไม่ถูกใช้งานจากผู้ใช้งานก็ควรลบทิ้งไปซะ
ให้เหลือ code ที่จำเป็นเท่านั้นจริง ๆ
จะได้ไม่ต้องมาเสียเวลากับ code ที่ไม่ใช้งาน
ดังนั้นจึงนำมาแปลและสรุป ตลอดจนหาข้อมูลเพิ่มเติมบ้าง
เริ่มจากเรื่องราวที่ developer หลาย ๆ คนน่าจะเคยพบมา
เมื่อมี bug หรือพวก feature ใหม่ ๆ เข้ามา สิ่งแรกที่ต้องทำคือ หา code และ พยายามทำความเข้าใจกับ code ว่าทำงานอย่างไร ? จากนั้นก็พยายามหาวิธีแก้ไข แต่ทันใดนั้นเองคุณกลับไม่แน่ใจว่า code ในส่วนนั้น ถ้าแก้ไขแล้ว จะกระทบต่อส่วนใดบ้าง ? code ในส่วนนั้นถูกใช้งานจากที่ไหนบ้าง ? ดังนั้นสิ่งที่ต้องทำให้มั่นใจคือ หาให้ได้ว่า code ส่วนที่จะแก้ไขมันถูกใช้จากที่ไหนบ้าง ? และสิ่งที่ไม่น่าเชื่อก็เกิดขึ้น คือ เราเสียเวลาไปเป็นวัน ๆ เพื่อรู้ว่า code ส่วนนี้ไม่ถูกใช้งานจากส่วนไหนเลย !! code ส่วนนี้ไม่มีผู้ใช้งานเลย !! โดยในบทความอธิบายว่าในการพัฒนา software มีอยู่ 2 กลุ่มคือ- กลุ่มที่เขียนแต่พวก framework และ library ซึ่งไม่เคยรู้เลยว่าหรือไม่สนใจเลยว่า จะมีใครมาใช้งาน code หรือไม่ !!
- กลุ่มที่เขียน Application code แน่นอนว่า code ที่เขียนคือ code ที่ถูกใช้งานอย่างแน่นอน
แต่ ... ไม่กล้าลบนะสิ เพราะว่า กลัว !! เดี๋ยวงานจะเข้า
ถ้าต้องการลบ code เราต้องการวิธีที่ทำให้มั่นใจสินะ !!
สิ่งแรกที่เราต้องการรู้ก็คือ dead code หรือ code ที่ไม่ถูกเรียกใช้งานจาก code ส่วนอื่นเลยจริง ๆ ซึ่งมีเครื่องมือในการตรวจสอบมากมาย ดังนั้นจึงไม่ใช้ประเด็นสักเท่าไร สิ่งที่หนักกว่านั้นคือ code ถูกเรียกใช้งานจาก code ส่วนอื่น แต่ไม่ถูกเรียกใช้งานจากผู้ใช้งาน พูดง่าย ๆ คือเป็น feature ที่ไม่มีใครใช้งานนั่นเอง คุ้น ๆ ไหมนะ ?ดังนั้นสิ่งที่เราต้องการคือ code บน production ถูกใช้งานหรือไม่ ?
หรือเราเรียกว่า coverage in production จะไปเขียน test case คงไม่ใช่ที่ แต่สิ่งที่ต้องทำก็คือ ต้องเพิ่ม logging หรือ analytic tool เพื่อทำให้เรารู้ว่า code ส่วนไหนไม่ถูกใช้งานจากผู้ใช้งานจริง ๆ แน่นอนว่าต้องเกิด overhead ขึ้นมาพอสมควร แต่การลงทุนย่อมต้องมีความเสี่ยงเสมอ แต่ถ้าต้องการลด overhead ต่าง ๆ ลงไป ก็ให้เก็บข้อมูลเฉพาะส่วนที่ต้องการ หรือส่วนที่น่าสงสัยก็น่าจะเพียงพอ จากนั้นทำการสรุปและวิเคราะห์จากผลการทำงาน เพื่อทำการลบ code ที่ไม่จำเป็นทิ้งไปเสียบ้าง แล้วมันจะทำให้คุณเสียเวลาน้อยลงไปวันนี้ developer หัดลบ code ที่ไม่ใช้งานออกไปบ้างหรือยัง ?Reference Websites https://michaelfeathers.silvrback.com/to-kill-code http://www.miqu.me/blog/2016/08/16/knowing-when-to-delete-code/