Software Architecutre , Design , Coding และ Optimize
นี้คือสูตรสำเร็จของการสร้างโปรแกรมที่ดีออกมา โปรแกรมที่ดีนั้นจะต้องมี Software Architecture ที่ดี Software Design ที่ดีและการ Coding ที่ดีวันนี้ผมเลยขอยกตัวอย่างมาเล่าสู่กันฟัง ในกรณีคือ Business Model มีการระบุอย่างชัดเจนแล้วดีนะครับ
อย่างแรกในการเขียนโปรแกรมก่อนที่จะเริ่มเขียนเราควรจะถามตัวเองว่า โปรแกรมเราใหญ่ขนาดไหน Software Architecture เราควรเป็นอย่างไร ถ้าอย่างผมประสบการณ์ยังไม่เยอะมาก ผมก็จะไม่ออกแบบ Architecture ให้มันซับซ้อนมาก ยิ่งถ้าเป็นโปรแกรมง่ายๆ ผมอาจจะออกแบบเป็น Functional Programming เลยด้วยไม่ต้องถึง OOP แต่ถ้าเขียน OOP ดีที่สุดคือ MVC (Model-View-Controller) ผมก็ใช้ Architecture นี้เป็น Main ละกันส่วนในตัวย่อยๆภายในจะใช้ Design Pattern อะไรก็ว่าไป หลักๆคือประมาณนี้ครับ
อย่างสองตัวนี้และสำคัญมากๆ ถึงแม้เราจะได้ Architecture เบื้องต้นแล้วว่าจะใช้สถาปัตยกรรมแบบไหน แต่ในเนื้อหาย่อยๆนี้และที่สร้างความแตกต่าง และเกิดประสิทธิภาพที่แตกต่างกันมากก็อยู่ที่ขั้นตอนนี้ละครับ ไม่ว่าจะเป็นการเลือก Framework มาทำงาน รวมถึงสถาัปัตยกรรมที่นำมาต่อเติมกัน เช่น ผมใ้ช้ Struts กับ Hibernate แล้วผมจะใช้ฐานข้อมูลอะไร ก็ควรระบุในขั้นตอนนี้ เช่น MySQL , SQLite 3 รวมถึงการทำ Rich Interface Application ด้วยว่าเราจะใช้อะไรเป็น Frontend เป็น Html ธรรมดาหรือใช้ AJAX ช่วยหรือจะเป็น Flash/Flex ก็ต้องตอบกันตรงนี้ละ ยิ่งถ้าทำคนเดียวคุณจะรุ้ตัวคุณเองว่าควรใช้อะไร
อย่างที่สามเป็นอย่างสุดท้ายที่สำคัญมากที่ทำให้เกิดผลงาน แล้วเกิดการต่อเติมอย่างไม่หยุดยั้ง !! คุณเชื่อไหมบางคนการที่เจอ Code แปลกๆไม่รู้จักก็ทำให้ท้อใจได้ การตั้งชื่อที่ทำให้ไม่เข้าใจ ทำให้งานช้าลง ดังนั้นสิ่งสำคัญก่อน Code นั้นก็คือ การตั้ง Naming ของตัวแปร และการ Comment ควรจะมีรูปแบบที่ทำเอาไว้เป็นงานๆก่อนลงมือทำ มันช่วยคุณตอนคุณจะพัฒนาระบบเพิ่มเติม หรือแก้ไข Bug มีประโยชน์สุดๆ แล้วในการ Coding นั้นมันก็มีวิธีเขียนหลายแบบอีก เช่น
- Shorthand (สั้นที่สุด)
- Readable & Understand (อ่านและเข้าใจง่าย)
- ฯลฯ
ถ้าคุณไม่เลือกแบบหรือใช้แบบมั่วๆ สุดท้ายถ้าเป็นงานที่ใหญ่แล้วคุณต้องกลับมาแก้คุณตายแน่ ดังนั้นอย่าพลาดที่จะทำสิ่งพวกนี้ก่อน Coding แล้วสุดท้ายคือการ Optimize หลังจากเราเขียนเสร็จแล้ว เราก็ต้องกลับมาพัฒนา Code ของเราให้อ่านง่ายขึ้น / Performance ดีขึ้นหรือเ้หตุผลอื่นๆที่ทำให้ระบบเราดีขึ้นด้วยครับ ![]()
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ
