มาทำ App ของคุณด้วย Modular Architecture กันน [Ep.1]

Sirichai Monhom
1 min readFeb 9, 2022

--

ด้วย Trende Supper App ขณะนี้หลายๆท่านอาจจะเคยได้ยินคำว่า Modular กันมาบ้าง แต่ว่ามันคืออะไรล่ะ?

ในโลกของการพัฒนา Solfwear จะต้องมีเพื่ม Feature ใหม่ๆอยู่ตลอด ทำให้ขนาดแอปพลิเคชันของเราใหญ่ และปริมาณ Source Code ก็เยอะขึ้นตามด้วยเช่นกัน เมื่อถึงจุดนึง การ Maintenance Source Code ของเราก็จะลำบากมากขึ้น รวมถึงปัญหาการ Config ต้อง Merge Code ด้วย และยิ่งกว่านั้นการทดสอบ หรือการเขียน Unit test ก็จะซับซ้อนตามไปด้วย

จึงเกิดคำว่า Modular Architecture เพื่อแบ่ง Source Code ออกเป็น Module ตามหน้านี้ของ Module นั้นๆ ยิ่งถ้าเป็น แอปพลิเคชัน ขนาดใหญ่ที่ทำงานร่วมกันหลายๆทีม Modular Architecture จะช่วยชีวิตคุณได้มากทีเดียว

ตามภาพด้านบนจะเห็นได้ว่าจะแบ่ง stack ตามนี้ครับ

  1. Application: ส่วนนี้จะเป็น Base Application จะเป็นชั้นบนสุดที่สามารถเรียกผ่านทุก Module ได้ และส่วนของ Configuration, Navigation, Add delegate ของ App ครับ
  2. Feature: ตรงนี้คือส่วนที่เราจะแบ่ง Code feture ออกมา ซึ่งจะมีได้หลาย module เช่น Register, Authentication, Redeem แต่ตรงนี้หลักๆจะเป็นส่วนของ View Presentation, Resource ส่วน Privider, Service จะอยู่ที่ Core จะใช้ก็ Import เข้ามาเท่าที่จำเป็นเท่านั้น และส่วนสำคัญคือ

แต่ละ Feature จะไม่สามารถเรียกกันเองได้ เพราะจะเกิด Cycle Dependency ถ้าจำเป็นต้องมีการเรียกก็ต้องทำ Delegate ให้ Application เป็นคนเรียก Feture อื่นต่อ

3. Shared: ส่วนที่เป็น Common เช่น Model หรือ Component ต่างๆ

4. Core: จะทำหน้าที่เป็น Service ให้ Module อื่น Manager, Utility, Extension, Config, Provide

ในการเขียนโปรแกรม ขั้นตอนการ Design เป็นส่วนที่สำคัญที่สุด ดังนั้นก่อนทำ Modular ควร Define กันในทีมให้เข้าใจถึงโครงสร้างของ project ให้เห็นภาพเดียวกันก่อนจะเริ่มลงมือ Code จริงๆ ในบทความถัดไปผมจะมาอธิบายถึงขั้นตอนการทำ Modular ใน Project จริงๆ รวมถึงการเรียกใช้ และการจัดการ Pod ด้วยครับ

ติดตามวิธีการทำ Modular ด้วย Example Project จริงๆได้ที่นี้เลยครับ Ep2

--

--