33ef612
คำถามที่น่าสนใจ

เราต้องทำการ optimize code ทุก ๆ ส่วนเลยใช่ไหม ?

ตอบได้เลยว่า ไม่
เพราะว่า การ optimize code ที่ไม่จำเป็น
และการ optimize code ตั้งแต่แรกเลย
มันคือ ความเลวร้ายของการพัฒนา software อย่างมาก

คุณ Donald Knuth เขียนไว้ว่า

Premature optimization is the root of all evil

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

หรืออย่าทำการ optimize code
ก่อนที่คุณจะต้องการมันจริง ๆ

ก่อนทำการ optimize code ควรต้องรู้ข้อมูล และ ตัวเลขเริ่มต้นก่อนเสมอ

ว่าตัวเลขในปัจจุบันเป็นอย่างไร ?
และจะปรับปรุงให้มันดีขึ้นเท่าไร ?
ถ้าดีกว่าเดิมไม่เกิน 20% อย่าทำ
เพราะว่า ในมุมของลูกค้า มันไม่มีอะไรเปลี่ยนแปลงเลยนะ !!

มาจากประโยคนี้

The threshold of perception is 2%
The threshold of meaning is 20%

ลองคิดดูสิว่า
คุณจะยอมเสียเวลาไปมากมาย
เพื่อทำการ optimize code ให้เร็วขึ้น 5% เองหรือไม่ ?
ตอบได้เลย ว่าไม่
มันไม่คุ้มค่ากับเวลาที่เสียไปเลย

แต่ก็ใช่ว่า จะไม่ทำการ optimize code เลยนะ !!

ฝากไว้กับประโยคนี้ จาก Unix Way

Make it Work
Make it Right
Make it Fast

ให้ทำตามลำดับนะครับ อย่าสลับกัน
ไม่เช่นนั้น ความโหดร้าย จะเข้ามาแทนที่ทันที

สุดท้ายแล้ว ขอฝากไว้อีกนิดหน่อยว่า

Performance มันคือ feature นะ
แต่จำเป็นต้องสร้างสมดุลระหว่าง
สิ่งที่มีประโยชน์ กับ good enough ด้วยนะครับ

Reference Websites
https://dzone.com/articles/shouldnt-we-aspire-to-optimize-code-everywhere