Screen Shot 2558-04-21 at 2.26.19 PM
เมื่อย้อนกลับไปดู code แย่ๆ ที่ตัวเองเคยเขียนมา
แล้วเห็นอะไรหลายอย่างมาก
โดย code เหล่านั้นมันสอนเรามามากมายเลยนะ !!
คุณยังจำได้ไหมนะ ?

ตัวอย่างเช่น

มีงานหนึ่งต้องทำการอ่านข้อมูลจาก text file ขนาดใหญ่
ทำการเขียน code ทำการวน loop
เพื่ออ่านข้อมูลจาก text file ในแต่ละบรรทัด
แล้วนำมาเชื่อมต่อข้อมูลกัน
เขียนด้วยภาษา Java ซึ่ง code เป็นดังนี้

โดยวิธีการดังกล่าวนั้น ประสิทธิภาพมันแย่มากๆ
เพราะว่า ในการทำงานจริงๆ ใช้เวลาการอ่านข้อมูลนานถึง 30 นาที
ถ้าอยากหาวิธีที่ดีกว่า เชิญทางนี้ที่ Stackoverflow.com
ซึ่งสามารถลดเวลาการทำงานลงไปเหลือเพียง 10 นาที !!

ต่อมาทำการพัฒนา และ แก้ไข code ส่วนนี้ไปเรื่อยๆ
จากทำซ้ำแล้วซ้ำอีกแบบนี้ จึงเกิดคำถามขึ้นมา คือ
สามารถเขียน code ส่วนนี้ให้มันดี และ ทำงานเร็วขึ้นได้อย่างไรบ้าง ?

สิ่งที่ค้นพบก็คือ เราสามารถใช้ shell script ทำงานในส่วนนี้ได้นะ
และก็พบว่า code ที่ได้มานั้น มันทำงานเร็วกว่า code ที่เขียนด้วย Java เยอะเลย
ดังนั้น จึงตัดสินใจเขียน code ภาษา Java มาเรียกใช้งาน shell script

ซึ่งเราภูมิใจใน code ชุดนี้มากๆ
ถึงแม้จะพบว่า code ชุดนี้มันแย่นะ
แต่มันทำงานได้ตามที่เราต้องการ

สิ่งที่น่าสนใจคือ เราไม่อายกับ code แย่ๆ ที่เราเขียน ?

คำถาม
คุณอาย code ที่คุณเขียนขึ้นมาหรือไม่ ?
คำตอบ
ถ้าตอบว่า อาย คำถามคือ อายอะไร ? ทำไมถึงอาย ?
หรือเราคิดว่า code เหล่านั้นมันแย่ ?

Screen Shot 2558-04-21 at 1.59.52 PM
จากรูปว่าด้วยเรื่อง Code Quality
เรามักจะพบว่า developer ที่มีประสบการณ์สูงๆ
มักจะไม่ค่อยช่วยอะไรกับ developer ใหม่ๆ เลย
มักจะชอบแต่ติ ว่า code มันแย่อย่างไร
แต่ไม่เคยบอกว่า ต้องแก้ไขอย่างไร
แถมยังบอกให้คุณไปอ่านพวกเอกสารเรื่อง coding style สิ !!

แนวทางที่ขอแนะนำก็คือ

ทำไมคุณไม่โชว์ code ที่ดี หรือที่คุณเขียนให้ดูเลยล่ะ ?
แต่จะมีใครบ้างนะ ที่ทำกันบ้าง ?
สาเหตุที่ไม่โชว์ code ให้น้องๆ ดู เพราะอะไรนะ ?
อายหรือเปล่านะ ?
กลัวหรือเปล่านะ ?
code มันแย่หรือเปล่านะ ?

คำถามคือ
คุณอาย code ที่คุณเขียนขึ้นมา เพื่ออะไร ?
มันช่วยทำให้ code ดีขึ้นหรือ ?
มันช่วยทำให้คุณดูดีขึ้นหรือ ?
คำตอบ
ไม่ได้ช่วยอะไรเลย !!

ลองมาเปลี่ยนแนวคิดกันใหม่ไหมครับ ?

จากบทความเรื่อง Million bad word อธิบายไว้ว่า

“Everyone has a million bad words in them. Only once they’ve written those million words can they start writing well. So get writing!”

นั่นคือ เราทุกคนล้วนมีคำแย่ๆ อยู่ในตัวเสมอ
แต่มีทางเดียวที่จะทำให้คุณเขียนได้ดีขึ้นเรื่อยๆ
นั่นคือ ลงมือเขียนเท่านั้น !!

ดังนั้นเราสามารถนำแนวคิดนี้มาใช้กับการเขียน code ได้นะ
นั่นคือ มีทางเดียวที่คุณจะเขียน code ให้ดี
คือการลงมือเขียน code ที่มันแย่ๆ ขึ้นมา
และคุณทำการเรียนรู้ว่า code มันแย่อย่างไร
และจะแก้ไข หรือ ปรับปรุงให้ code มันดีขึ้นได้อย่างไร

ดังนั้น อย่าอายการเขียน code ที่มันแย่ๆ นะ
เพราะว่า มันจะเป็นตัวที่หยุด หรือ ห่างไกลจาก code ที่มันดี ไปเรื่อยๆ

สุดท้ายแล้ว

คุณลองกลับไปดู code ที่คุณเคยเขียนมาสิ
ว่ามีจำนวนมากเท่าไร ?
คุณอายมันไหม ?
มันแย่ไหม ?

แล้วกลับมาดู code ในปัจจุบันที่คุณเขียนสิ
ว่ามันแตกต่าง หรือ ดูดีกว่าเดิมอย่างไร ?
เชื่อสิว่า code มันดีขึ้นกว่าเดิมแน่นอน !!

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

Just write the code
Don’t be shame