HMVC-สำหรับพัฒนาเว็บไซต์ขนาดใหญ่

ทำเว็บไซต์ขนาดใหญ่ ด้วย HMVC Codeigniter

ทำเว็บไซต์ขนาดใหญ่ ด้วย HMVC

ทำเว็บไซต์ขนาดใหญ่ ด้วย HMVC Design Pattern

คำว่า Design Pattern ในเชิงการพัฒนาเว็บไซต์ หมายถึง รูปแบบวิธีการเขียนโค๊ดที่ถูกพัฒนาขึ้นมาเพื่อแก้ปัญหาโดยรวมในการพัฒนาเว็บไซต์ ปัจจุบัน Design Pattern ที่ได้รับความนิยมอย่างมากคือ MVC Design Pattern ( Model, View, Controller ) การพัฒนาเว็บไซต์โดยใช้หลักการ MVC สามารถเพิ่มประสิทธิภาพและแก้ปัญหาการพัฒนาเว็บไซต์ได้หลายส่วน ทำให้การพัฒนาเว็บไซต์มีความยืดหยุ่นทั้งในแง่ของการพัฒนาต่อยอด และการทำงานเป็นทีมของกลุ่มนักพัฒนาเอง

แนวคิดแบบ MVC เพียงพอสำหรับการพัฒนาเว็บไซต์ขนาดใหญ่ได้ แต่ถ้าในเว็บไซต์นั้น มีเว็บไซต์ขนาดใหญ่ซ้อนอยู่ข้างในอีกทีหนึ่ง ตัวอย่างเช่น โปรแกรม ERP ( Enterprise Resource Planning ) โปรแกรมวางแผนทรัพยากรทางธุรกิจขององค์กร ซึ่งแน่นอนว่าเป็นระบบขนาดใหญ่ ในโปรแกรมจะประกอบด้วย Modules ขนาดใหญ่ โดยส่วนใหญ่ก็จะมี Modules ประมาณรายการด้านล่าง

  • Sale & CRM
  • Accounting & Finance
  • Purchase
  • Warehouse Management
  • Project Management
  • Human Resource
  • อื่น ๆ

ที่ลิสต์มาด้านบนเป็นแค่ส่วนหนึ่งครับ ERP นั้นมีอีกหลาย Modules จะเห็นได้ว่าทุก Modules ด้านบนมีความสำคัญและถ้าพัฒนาออกมาเป็น Web Apps ต้องเป็นเว็บไซต์ขนาดใหญ่ทุก Modules แน่นอน แต่ ERP คือการมี Modules นั้นอยู่ในตัวเองทั้งหมด

HMVC ( Hierarchical Model View Controller ) เกิดมาเพื่อจัดการเว็บไซต์ขนาดใหญ่แบบนี้ครับ มองภาพแบบเข้าใจง่าย ๆ เลยคือ เว็บไซต์ที่มีเว็บไซต์ขนาดใหญ่หลาย ๆ เว็บไซต์ซ้อนอยู่ภายใน HMVC ก็คือ การมีโครงสร้างแบบ MVC หลาย ๆ ตัว ซ้อนอยู่ข้างใน MVC ตัวหลักนั่นแหล่ะครับ

ในเมื่อ HMVC สามารถมีหลาย ๆ MVC เราก็สามารถจัดการกับ 1 Modules เท่ากับ 1 MVC ได้เลย

รูปตัวอย่างโครงสร้างการพัฒนาระบบ ERP โดยใช้ HMVC


พัฒนาเว็บไซต์ขนาดใหญ่ด้วย hmvc


จากตัวอย่างรูปด้านบน ซึ่งเป็น HMVC ของ Codeigniter framework จะสังเกตุว่า โครงสร้างหลักของตัวเฟรมเวิร์คจะยังคงมี Model, view, controller ที่สามารถใช้งานได้เหมือนเดิม และเพิ่มโฟลเด้อ modules เข้ามาและภายใน จะประกอบไปด้วยโมดูลย่อย ๆ ที่มีโครงสร้างการเขียนแบบ MVC

จุดเด่นของการใช้ HMVC ในการพัฒนาเว็บไซต์คือ เราสามารถแยกการพัฒนาแต่ละโมดูลออกจากกันโดยสิ้นเชิงได้เลย โปรแกรมเมอร์คนหนึ่งอาจจะพัฒนาโมดูล CRM อีกคนพัฒนา POS และอีกคนพัฒนา Warehouse หลังจากพัฒนาเสร็จสามารถโยนโมดูลหรือ MVC ตัวนั้นเข้ามาที่ MVC หลักได้เลย

กระทู้ใกล้เคียง

React Native ส่ง Notification ด้วย Onesignal... React Native ส่ง Notification ด้วย Onesignal React Native ส่ง Notification ด้วย Onesignal Onesignal คือบริการ Push Notification หรือตัวกลางในการส่...
วิธีลบหน้า Error 404 ออกจากผลการค้นหา Google Searc... วิธีลบหน้า Error 404 ออกจากผลการค้นหา Google Search Result วิธีลบหน้า Error 404 ออกจากผลการค้นหา Google Search Result คงจะไม่เป็นผลดีแน่ ๆ ถ้ามี...
PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API... PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API อันที่จริงมีผู้ให้บริการ SMS Gateway อยู่ห...
คำสั่งค้นหาขั้นสูง ด้วย Advanced Google Search Com... คำสั่งค้นหาขั้นสูง ด้วย Advanced Google Search Commands คำสั่งค้นหาขั้นสูง ด้วย Advanced Google Search Commands 99.5% ของผู้ใช้งานอินเตอร์เนตจากทั...