Skip to content

Software Architecture Styles Usecase

Published: at 12:03 PM

สไตล์การออกแบบสถาปัตยกรรมซอฟต์แวร์ (Software Architecture Styles) ช่วยกำหนดรูปแบบและหลักการในการออกแบบระบบให้มีความเหมาะสมกับปัญหาที่ต้องการแก้ ด้านล่างคือสรุปสไตล์ยอดนิยม พร้อม Use Cases ของแต่ละแบบ


🟦 1. Layered Architecture (n-tier)

แนวคิด: แบ่งระบบเป็นชั้น เช่น Presentation, Business, Data Access

Use Case:

✅ เหมาะกับทีมที่มีการแยกหน้าที่กันชัดเจน (frontend/backend)


🟥 2. Microkernel Architecture (Plugin-based)

แนวคิด: มีแกนหลักเล็ก ๆ (core) แล้วเสริมความสามารถด้วย plugin

Use Case:

✅ เหมาะกับระบบที่ต้องเปลี่ยนฟังก์ชันได้โดยไม่รบกวน core


🟪 3. Microservices Architecture

แนวคิด: แยกแอปออกเป็น service ย่อย ที่ deploy และ scale ได้อิสระ

Use Case:

✅ เหมาะกับระบบที่ซับซ้อนและเติบโตเร็ว


🟨 4. Space-Based Architecture

แนวคิด: กระจายข้อมูลและโหลดให้หลาย node ลด bottleneck

Use Case:

✅ เหมาะกับระบบที่มี data throughput สูงและต้องการ low latency


🟩 5. Domain-Driven Design (DDD)

แนวคิด: ออกแบบซอฟต์แวร์จากมุมมองของ business domain

Use Case:

✅ เหมาะกับโปรเจกต์ที่ทำร่วมกับ domain expert


🔄 6. Event-Driven Architecture

แนวคิด: ใช้ Event เป็นตัวกระตุ้นการทำงานของระบบ

Use Case:

✅ เหมาะกับระบบที่ทำงานแบบ reactive, loosely coupled


🧩 7. MVP Architecture (Model-View-Presenter)

แนวคิด: แยก UI, Business Logic, และ Data Access ออกจากกัน

Use Case:

✅ เหมาะกับ frontend-heavy apps ที่ต้องการ test ง่าย


🧠 8. Orchestration Architecture

แนวคิด: มีตัวควบคุมกลาง (orchestrator) กำกับการทำงานของ services

Use Case:

✅ เหมาะกับ use case ที่ต้องมีการควบคุมลำดับงาน/การประสานหลาย service


📚 9. CQRS Architecture

แนวคิด: แยกการอ่าน (Query) และเขียน (Command) ออกจากกัน

Use Case:

✅ เหมาะกับระบบที่ต้อง scale การอ่านและเขียนต่างกัน


🧪 อื่น ๆ (ในวงล้อกลาง)

StyleUse Case
Pipe-and-Filterระบบแปลงข้อมูลแบบเป็นขั้นตอน เช่น data pipeline
Client-Serverเว็บแอปทั่วไป, REST API
Peer-to-PeerBitTorrent, Blockchain
SOA (Service-Oriented)ระบบองค์กรใหญ่ที่ใช้ ESB

🔚 สรุปแนะนำเบื้องต้น

เป้าหมายหลักArchitecture ที่ควรใช้
โครงสร้างชัด, ทั่วไปLayered
ระบบใหญ่, หลายทีมMicroservices
จัดการเหตุการณ์/ประมวลผล asyncEvent-Driven
ประสิทธิภาพสูง/โหลดเยอะSpace-Based
มองจาก business logicDDD
ระบบปลั๊กอินMicrokernel
Mobile UIMVP
ควบคุม flow หลาย serviceOrchestration
แยก read/write ชัดเจนCQRS

Previous Post
Top 4 Types of SQL Joins
Next Post
System Design Blueprint