last-line-effect
จากบทความเรื่อง Last Line Effect
ทำการศึกษาผลกระทบที่มักเกิดกับการ Copy-and-Paste code
ซึ่งแน่นอนว่า developer ส่วนใหญ่ชอบใช้งาน
แถมใช้งานกันบ่อย ๆ อีกด้วย
และบ่อยครั้งพบว่าการกระทำแบบนี้ก่อให้เกิดความผิดพลาดขึ้นมา

หนึ่งในข้อผิดพลาดนั้นก็คือ
code ใน block หรือบรรทัดท้าย ๆ นั่นเอง
มาดูผลการศึกษากัน

ผู้ทำการศึกษาได้สรุปและจัดเก็บ bug จากระบบงานต่าง ๆ

ไว้ในรูปแบบของตนเองทำให้ง่ายต่อการศึกษา
ซึ่งอยู่ที่ Detected errors database
โดย pattern หนึ่งที่ได้ทำการศึกษาคือ Last Line Effect

Last Line Effect มันคืออะไร ?

ในการเขียนโปรแกรมของ developer นั้น
บ่อยครั้งมักมี code คล้าย ๆ กันทำงานต่อเนื่องกัน
ดังนั้นถ้า developer จะพิมพ์สิ่งที่ซ้ำ ๆ กัน มันก็น่าเบื่อสุด ๆ
สิ่งที่ developer มักจะทำก็คือ
ทำการ Copy-and-Paste code ที่คล้าย ๆ กันซะ

จากนั้นจึงตามไปแก้ไขส่วนที่ต้องการ
สิ่งที่ตามมาคือ ความผิดพลาด
เนื่องจากเมื่อทำการ copy เยอะ ๆ แล้ว
ทำให้ developer หลงลืมไปว่า
จะต้องแก้ไขตรงไหนอย่างไรบ้าง !!

มาดูตัวอย่าง code จากการศึกษาเรื่อง Last Line Effect กันบ้าง ?

ซึ่งมักจะเกิดในช่วง ๆ บรรทัดท้ายของโปรแกรม
หรือของแต่ละ method
หรือในแต่ละ block

คำอธิบาย
เห็นบรรทัด z+= หรือไม่ ?
ไม่น่าจะเป็นการเพิ่มค่าจาก other.y นะ !!

หรือจากเงื่อนไขยาว ๆ ของการเปรียบเทียบ

คำอธิบาย THREADS= มีความยาวเป็น 8 นะ !!

หรือว่า copy มาแบบนี้ !!

หรือว่าแบบนี้ ดูผ่าน ๆ หาข้อผิดพลาดยากมาก ๆ !!

หรือเป็นพวกย้ำคิดย้ำทำ !!

ใครเคยทำแบบนี้บ้างยกมือขึ้น ?

วิธีการแก้ไขนั้นทำได้ไม่ยากเลยนะ

แต่ขอแนะนำให้คิดก่อนว่า การจะเป็น developer ที่ดีต้องทำอย่างไร ?
โดยมากแล้วมักจะสร้างข้อผิดพลาดเล็กน้อยขึ้นมาเสมอ

แต่สิ่งที่น่ากลัวกว่าคือ ไม่รู้ว่าตนเองทำผิดพลาด !!

เนื่องด้วยสาเหตุอะไรก็ตาม
หลัก ๆ มาจาก feedback loop ของการทดสอบมันนานมาก ๆ
ดังนั้นสิ่งที่ควรกระทำสำหรับ developer ที่ดีคือ
รู้ข้อผิดพลาดต่าง ๆ ให้รวดเร็วที่สุดเท่าที่จะเป็นไปได้
เพื่อป้องกันและแก้ไขข้อผิดพลาดเหล่านั้น
ก่อนที่จะกลายเป็นข้อผิดพลาดอันใหญ่หลวง !!

หนึ่งในแนวปฏิบัติคือ Test-Driven Development (TDD)
ทำซะ แล้วจะช่วยทำให้คุณรู้ว่า
จุดอ่อนและข้อผิดพลาดใน code อยู่ตรงไหน