อย่าใช้ MP เกินครึ่งหลอด
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it? — Brian Kernighan
วันก่อนผมมีโอกาสได้สอน concept เรื่อง dependency injection ให้ทีม มีสมาชิกคนหนึ่งตื่นเต้นกับเรื่องราวใหม่นี้ หาโค้ดตัวอย่างที่เคยเห็นๆมา เอามากางให้ผมดู เพื่อถามและทำความเข้าใจเพิ่มเติมอย่างกระตือรือร้น (คนแบบนี้สอนสนุกจริงๆ :D) แล้วน้องเค้าก็พูดมาคำหนึ่งว่า
ผมจะพยายามหาที่ที่เล่นท่านี้ดูนะ
แวบนั้นสัญญาณนิรภัยในหัวผมก็ดังขึ้นมา แล้วก็โพล่งไปก่อนว่า “อย่า” ผมเล่าต่อว่า สมัยก่อน บ่อยครั้งที่ผมมักจะตื่นเต้นกับท่าใหม่ๆที่ได้เรียนมา แล้วก็หาทางเอาไปใช้ในงาน ผลลัพธ์เป็นเอกฉันท์ทุกครั้งไป คือโดนท่านั้นกลับมาแว้งกัดตัวเอง ตอนแรกผมไม่แน่ใจว่าผมเป็นแค่โปรแกรมเมอร์ดวงซวย หรือการใช้ท่ายากมันจะต้องโดนแว้งกัดเสมอไปนะ? จนกระทั่งมาเจอ quote ของ Brian Kernighan (จริงป่าวไม่รู้ แต่ wikipedia บอกว่าเค้าเป็นคนพูด) ว่า การ debug เนี่ย มันยากกว่าเขียนโด้ดตอนแรกตั้งเท่าตัว เพราะฉะนั้น ถ้าใช้ท่าที่ยากเกินครึ่งนึงของความสามารถเราเขียนมันขึ้นมา by definition เลยแปลว่า เราจะไม่มีปัญญา debug มันตอนมีปัญหา
เรื่องนี้สอนให้รู้ว่า ผม โชคชัย by definition ไม่มีทางดวงซวย #ไม่เห็นจะเกี่ยว #จบๆ กลับไปทำงานกัน
ref: https://en.wikiquote.org/wiki/Brian_Kernighan
credit:
- ป้อ ที่เป็นแรงบันดาลใจให้เขียน blog นี้
- โจ้ ที่เป็นต้นเหตุให้เกิด blog นี้