
มีโอกาสได้แบ่งปันประสบการณ์ ของการเขียน program อีกครั้งจึงคิดว่า จะแบ่งปันเรื่องพื้นฐานดีกว่า (พอดีทำเป็นแต่เรื่องพื้นฐาน)นั่นก็คือ การเขียน code ที่น่าจะดีขึ้นกว่าเดิม ไม่มากก็น้อยประกอบด้วยแนวคิดต่าง ๆ เหล่านี้น่าจะพอมีประโยชน์บ้าง
วันนี้ทางทีมมีคุยกันเรื่อง Technical Debt หรือหนี้เชิงเทคนิค แน่นอนว่า ที่มาที่ไปนั้น เพื่อทำให้เข้าใจว่า สิ่งที่สายงานเชิงเทคนิคในการพัฒนา software อธิบายในมุมมองของการเงิน เพื่อให้เข้าใจมากยิ่งขึ้น ว่าสิ่งที่ทำลงไป มันก่อนให้เกิดหนี้หรือไม่ ? แน่นอนว่า ตามลักษณะของหนี้ย่อมไม่ได้มาแบบฟรี ๆ แต่มาพร้อมกับเงินต้น และ ดอกเบี้ย หนี้อาจจะเกิดขึ้นได้ง่าย ๆ คำถามคือ คุณจ่ายคืนไหน ดังนั้นถ้าเราไม่จ่ายหนี้ดอกมันก็จะแบ่งบาน จนสุดท้ายอาจจะทำให้ลูกหนี้มีปัญหาขึ้นมาได้
หลังจากทำการ review code ไปนิดหน่อย พบว่าได้เจอ code ที่น่าสนใจ เนื่องจากจะขัดกับ Law of Demeter พอควร ผลที่ตามมาคือ code ทำงานได้ แต่มีการเรียกต่อกันเป็นทอด ๆ ยาวมาก ๆ ยกตัวอย่างเช่น game.Board.Size.X และ g.Board.Slots[i][j].Number เป็นต้น แต่ตามจริงเราต้องการเพียงค่าสุดท้ายเท่านั้นเอง ทำไมเราต้องเขียน code ยาวขนาดนี้กันด้วย ? น่าคิดมาก ๆ หรือเราคิดว่า มันคือเรื่องปกติ เพราะว่า โครงสร้างของระบบเราเป็นแบบนี้ ? ดังนั้นมาปรับปรุง code ชุดนี้กันหน่อยดีไหม
วันนี้เห็น tweet ใน Twitter เรื่อง Seven Ineffective Coding Habits of Many Programmers ทำการสรุป 7 อุปนิสัยที่ไม่ดีสำหรับการ coding เก่าหน่อยแต่ก็ยังมีประโยชน์ เนื่องจากการพัฒนา software ซึ่งมีความซับซ้อนนั้น นักพัฒนาต้องมีอุปนิสัยที่ดี เพื่อที่จะได้นำมาใช้ในการพัฒนา software ได้อย่างคล่องแคล่วและเป็นธรรมชาติ ทั้งการตั้งชื่อ ทั้งรูปแบบของ code ทั้งโครงสร้างที่ดี ทั้งการ comment เพื่ออธิบาย code ทั้งการเขียน unit testing ทั้ง … มันเยอะมาก ยากนะ ดังนั้นใน VDO นี้จะทำการอธิบาย 7 อุปนิสัยที่ไม่ดีซึ่งไม่ควรทำ จึงสรุปไว้นิดหน่อย
เนื่องจากเพิ่งผ่านการ review code มากว่า 41 project ก็ได้เห็นรูปแบบของ code ที่น่าสนใจหลาย ๆ อย่าง ทั้งเรื่องความซับซ้อน ทั้งเรื่องของ indent ทั้งเรื่องของการ hard code ทั้งเรื่องของการ comment ทั้งเรื่องการ debug code ทั้งเรื่องของการตั้งชื่อ ทั้งเรื่องของ code ที่ไม่ใช้งานหรือมีมากเกินความจำเป็น จึงทำการสรุปไว้ใน slide นิดหน่อย