Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Write clear code, NOT clever code

$
0
0

clever-code

clever-code จากหนังสือ Practice of an Agile Developer มีคำแนะนำเกี่ยวกับวิธีการปรับปรุงความสามารถของ developer มากมาย ทั้ง soft skill และ technical skill แต่มีประโยคหนึ่งในหนังสือเล่มนี้ที่น่าจะโดนมาก ๆ คือ
Write clear code, NOT clever code
เป็นความสามารถที่สำคัญมาก ๆ ของ developer ควรจะมีไว้

ผมคิดว่า developer ส่วนใหญ่

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

แต่สิ่งที่แปลกก็เกิดขึ้นมาจากทีม !!

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

เมื่อไปถามคนในทีมเกี่ยวกับ code เหล่านี้พบว่า

code ที่เขียนขึ้นมานั้น perfect มาก ๆ code ที่เขียนขึ้นมานั้นมี pattern ที่ดีมาก code ที่เขียนขึ้นมานั้นทำงานได้อย่างถูกต้อง แต่ code ที่เขียนขึ้นมานั้น ไม่มีใครอ่านรู้เรื่องเลย !! code มันไม่ชัดเจน code มันซ่อน logic ต่าง ๆ ไว้เยอะมาก code มันซ่อน magic ต่าง ๆ ไว้เยอะมาก จนทำให้คนอื่น ที่ไม่ใช่เจ้าของ code ไม่รู้เรื่องเลย บางครั้งความสามารถของคนมันไม่เท่ากัน บางครั้งจินตนาการของคนมันไม่เท่ากัน บางครั้งความเข้าใจปัญหาไม่เท่ากัน

ดังนั้นสิ่งที่ควรคิดเมื่อต้องเขียน code คือ

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

สุดท้ายแล้ว เราไม่ได้ต้องการ code ที่สมบูรณ์แบบ

แต่เราต้องการ code ที่ชัดเจน นั่นหมายถึงคนในทีมสามารถเข้ามาดูต่อได้ง่ายนะครับ
If you love writing code-- really, truly love to write code-- you'll love it enough to write as little of it as possible. จาก codinghorror.com
Reference Websites http://blog.teamtreehouse.com/tips-for-writing-better-code https://medium.com/@mikesherov/writing-clear-code-not-clever-code-d6b90353a3c5#.c0vqy7l6b http://www.codethinked.com/dont-be-clever https://www.quora.com/How-do-I-learn-to-write-simpler-more-efficient-code-with-fewer-lines https://www.quora.com/What-are-some-of-your-personal-guidelines-for-writing-good-clear-code https://blog.codinghorror.com/the-best-code-is-no-code-at-all/

Viewing all articles
Browse latest Browse all 1997

Trending Articles