clean-code Archive

สรุปจาก VDO เรื่อง 7 ineffective coding habits

วันนี้เห็น tweet ใน Twitter เรื่อง Seven Ineffective Coding Habits of Many Programmers ทำการสรุป 7 อุปนิสัยที่ไม่ดีสำหรับการ coding เก่าหน่อยแต่ก็ยังมีประโยชน์ เนื่องจากการพัฒนา software ซึ่งมีความซับซ้อนนั้น นักพัฒนาต้องมีอุปนิสัยที่ดี เพื่อที่จะได้นำมาใช้ในการพัฒนา software ได้อย่างคล่องแคล่วและเป็นธรรมชาติ ทั้งการตั้งชื่อ ทั้งรูปแบบของ code ทั้งโครงสร้างที่ดี ทั้งการ comment เพื่ออธิบาย code ทั้งการเขียน unit testing ทั้ง … มันเยอะมาก ยากนะ ดังนั้นใน VDO นี้จะทำการอธิบาย 7 อุปนิสัยที่ไม่ดีซึ่งไม่ควรทำ จึงสรุปไว้นิดหน่อย

Read More…

สรุปเรื่องของ A theory of modern Go

จากบทความในโค้ดทัวร์ ตอน 1 ทำการอธิบาย code ที่เขียนด้วยภาษา Go มีรูปแบบหรือ pattern ที่น่าสนใจหลายตัว หนึ่งในนั้นคือ NewEntry(url string) ทำให้นึกถึงเรื่องของ A Theory of modern Go ซึ่งอธิบายถึงเกี่ยวกับ Global state/variable จึงนำมาสรุปไว้นิดหน่อย

Read More…

วันว่าง ๆ มาดู code ที่น่าจะต้องปรับปรุง

เนื่องจากเพิ่งผ่านการ review code มากว่า 41 project ก็ได้เห็นรูปแบบของ code ที่น่าสนใจหลาย ๆ อย่าง ทั้งเรื่องความซับซ้อน ทั้งเรื่องของ indent ทั้งเรื่องของการ hard code ทั้งเรื่องของการ comment ทั้งเรื่องการ debug code ทั้งเรื่องของการตั้งชื่อ ทั้งเรื่องของ code ที่ไม่ใช้งานหรือมีมากเกินความจำเป็น จึงทำการสรุปไว้ใน slide นิดหน่อย

Read More…

Swift :: ลองปรับปรุงการใช้งาน protocol กันนิดหน่อย

วันนี้เจอ code ที่เขียนด้วยภาษา Swift ที่น่าสนใจ เกี่ยวกับการใช้งาน protocol แถมเจอบทความอธิบายเรื่องนี้ด้วย  Protocol Composition เลยนำมาสรุปกับ code ที่พบเจอด้วยเลย โดย code เหมือนจะดูดีนะ แต่มีหลายเรื่องที่สามารถปรับปรุงให้ดีขึ้นได้ มาเริ่มกันเลย

Read More…

วันนี้นักพัฒนาเขียน TODO และ FIXME ใน code แล้วหรือยัง ?

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

Read More…

มาเขียน code ที่ดีกว่าเดิมกันดีกว่า

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

Read More…

แค่คำว่า Good Enough มันคงยังไม่พอนะ !!

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

Read More…

ทำไม Developer ควรให้เวลากับการลบ code ของตัวเองทิ้งไปบ้าง ?

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

Read More…

Clean Code หนังสือที่นักพัฒนาควรอ่าน

วันนี้มี developer มาถามเรื่องหนังสือเกี่ยวกับ programming ว่าควรจะอ่านหนังสืออะไรบ้าง ? เล่มแรกที่ผมแนะนำให้อ่านก็คือ Clean Code – A Handbook of Agile Software Craftsmanship ในหนังสือเล่มนี้อธิบายแนวปฏิบัติที่ดีสำหรับการพัฒนา software ถึงแม้ว่าหนังสือจะเก่าหน่อย แต่เนื้อหาส่วนใหญ่ยังแจ่มมาก ๆ ปล. เป็นหนังสือที่นักพัฒนาต้องอ่านกันเลยนะ ดังนั้นจึงทำการสรุปเนื้อหาหลัก ๆ ไว้นิดหน่อย

Read More…

คำถาม :: Developer ทำการแบ่ง package ของระบบกันอย่างไร ?

จากบทความเรื่อง Package by feature, not layer อธิบายถึงการแบ่ง package ต่าง ๆ ในระบบงาน ซึ่งเป็นสิ่งที่สำคัญมาก ๆ เป็นงานที่ทีมพัฒนาต้องช่วยกัน เป็นงานที่ทีมพัฒนาต้องตัดสินใจร่วมกัน ว่าต้องการให้โครงสร้างของระบบเป็นอย่างไร ? แน่นอนว่า ส่งผลต่อการพัฒนาระบบอย่างแน่นอน

Read More…