จากหนังสือ 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.comReference 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/