Screen Shot 2558-04-20 at 12.25.09 PM
เรื่องที่ 35 ที่นักพัฒนาควรรู้ และ เข้าใจก็คือ Beauty Is in Simplicity

เขาบอกไว้ว่า ความงดงามที่อยู่ในความเรียบง่าย !!
โดยแนวคิดนี้ developer ที่ดีทุกคนควรรู้ และ ตระหนัก
ตลอดตนยึดถือเป็นแนวทางในการปฏิบัติกันเลยทีเดียว

เริ่มจาก quote จาก Plato

Beauty of style and harmony and grace and good rhythm depends on simplicity.

คำถาม
แล้วมันเกี่ยวอะไรกับการพัฒนา software ล่ะ ?
คำตอบ
ลองคิดดูสิว่า software ที่คุณสร้างขึ้นมานั้น ต้องการอะไรบ้าง ?

  • Readability ?
  • Maintainability ?
  • ความเร็วในการพัฒนา ?
  • ว่าด้วยเรื่องของคุณภาพ ?

จาก quote ของ Plato นั้นบอกให้เรารู้ว่า
สิ่งต่างๆ ที่คุณต้องการในการพัฒนา software ล้วนมาจากความเรียบง่าย (Simplicity)
แต่จำไว้ว่า Simple not Easy นะ !!

แล้วไอ้คำว่า Beautyful code หรือ code ที่มันงดงามคืออะไรกันล่ะ ?

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

ถ้าทุกคนมีระดับความงดงามเหมือนกันหมด คงจะไม่มีอะไรสนุกให้ทำใช่ไหม ?

ตัวอย่างเช่นคนที่เรียนศิลปะมา
ย่อมมีมุมมองเรื่องนี้ ต่างไปกับคนที่เรียน Computer science มา
ถึงแม้ว่าจะมีมุมมองที่แตกต่างกัน
แต่คำว่า ความเรียบง่าย มันคือพื้นฐานจากทั้งสองมุมมอง

ยกตัวอย่างเช่น source code

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

แล้วลองเรียนรู้จาก code เหล่านั้น
แล้วคุณจะพบว่า code แต่ละส่วน
มันจะมีส่วนประกอบหลักคือ ความเรียบง่าย

บางคนอาจจะบอกว่า ระบบมันซับซ้อน (complex) นะ
แต่ลองให้พิจารณาลงไปว่า ในแต่ละส่วนมันเรียบง่าย หรือ ซับซ้อน
แต่ละส่วนของการทำงาน มักจะมีหน้าที่การทำงานเดียวไปเลย (Single Responsibility Principle)

ลองดูที่ชื่อของ class และ method ดูสิ ว่า มันอธิบายสิ่งที่มันทำงานไหม ?
ลองดูจำนวนบรรทัดของแต่ละ method สิ ว่ามีจำนวนเท่าไร ?
ลองดู dependency ต่างๆ ของ class และ method สิว่ามีความสัมพันธ์กันอย่างไร ?
ลองดูสิว่า code แต่ละส่วนมันสามารถทดสอบได้หรือไม่ ?
ลองดูสิว่า code แต่ละส่วนมี test ครอบคลุมหรือไม่ ?

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

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

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

คำตอบ คือสิ่งที่บอกว่า คุณจะต้องทำอะไรต่อไป …