note to myself about how to set up software project

1.convention สำคัญ โดยเฉพาะอย่าง project ที่มีคน contribute หลายคน แต่เวลาเราพูดถึง convention บางทีการที่ dev ไม่ได้ทำตาม convention มันอาจจะมาจากตัว convention เองที่ไม่ชัดเจน หรือเป็น case ก้ำๆกึ่งๆ อันนี้ก็ต้องคุยกัน และพยายามปรับปรุงมันไปเรื่อยๆ (คือแม้แต่เรื่องที่ดูเหมือนจะ strict และ static มากๆ เราก็ไม่ควรให้มันอยู่นิ่ง เราควรทำให้มัน better ฉะนั้น convention จึงสมควรถูกพิจารณาว่าเป็นอะไรที่ dynamic ตั้งแต่แรก)

2.structure และ architecture ของตัว project สำคัญตั้งแต่แรกเริ่ม การวางแย่มาตั้งแต่ตอนแรกจะทำให้ตอนหลังมีปัญหาที่จะต้องรื้อตัว proj นั้นใหม่ แต่กระนั้นก็ไม่มีอะไรที่ดีตั้งแต่แรกหรือเราก็ไม่รู้ว่าตอนแรกที่คิดว่าดีจะกลายเป็นแย่ตอนท้ายหรือเปล่า แต่พิจารณาง่ายๆว่าตัวโครงสร้างมันเป็น modular พอหรือเปล่า มัน independent ขนาดไหน ก็คือควรพยายามทำให้มันเป็นตัวต่อ lego ถอดๆเสียบๆได้ ยิ่งในยุคที่เทคโนโลยีไปกันไวมาก การวางโครงสร้างไว้ให้ดีจึงเป็นอะไรที่สำคัญมาก นอกจากนั้นยังทำให้ง่ายต่อ developer ต่อการทำความเข้าใจภาพรวมของตัว software นั้นๆด้วย

3.naming ขอพูดเรื่องนี้แยกจาก convention เรื่องนี้ดูเหมือนเล็ก แต่จริงๆแล้วใหญ่มาก การคิดระบบตั้งชื่อที่ดีตั้งแต่ตอนแรกช่วยให้เราสามารถทำงานได้เร็วขึ้นอย่างมีนัยยะสำคัญ เพราะ 1. ไม่เกิดการสับสนระหว่างชื่อนั้นนี้ และป้องกันไม่ให้เกิดการตั้งชื่อซ้ำได้ 2. ชื่อที่ดีจะทำให้เราสามารถ focus และทำให้ code มัน readability สูงขึ้น คิดง่ายๆว่าถ้าตั้งชื่อ function ที่อ่านปุ๊บรู้เลยว่ามันเอาไว้ทำอะไร มันก็เพิ่ม flow มากๆแล้ว ปัญหาคือ แล้วถ้าเกิด function มันทำงานใกล้กันมากล่ะๆ อันนี้เป็นปัญหาจริงๆ มีหลายข้อเสนอ แต่สำหรับเรา ถ้ามัน refactor ไม่ได้ หรือยุบรวม function ไม่ได้ เราคิดว่าเรายอมตั้งชื่อ function ให้ยาวดีกว่า แล้วก็ comment เพิ่มไปอีกนิดหน่อย ซึ่งแน่นอนว่าวิธีนี้ก็มี cost ของมัน

Like what you read? Give W.S.Kiang a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.