มุมมองของสถาปัตยกรรมซอฟต์แวร์
Perm Chao
Posted on September 8, 2021
จากหนังสือ Fundamentals of Software Architecture
ได้พูดถึงมุมมองทั้งสี่ด้านเพื่อมองสถาปัตยกรรมของซอฟต์แวร์นั้นๆ
โครงสร้าง (Structure)
สมมุติว่ามีคนบอกว่าเราวางสถาปัตยกรรมของระบบไว้แบบ Microservices นั้นแปลว่าเค้ากำลังบอกคุณแค่โครงสร้างของระบบแต่ยังไม่ใช่สถาปัตยกรรมของระบบ
ซึ่งโครงสร้างในระบบมีหลายหลายแบบเช่น Microservices, Layered, Microkernel-
คุณสมบัติ (Characteristic)
เป็นเกณฑ์ของซอฟต์แวร์นั้นๆที่ควรจะมีเช่น- พร้อมใช้งานเสมอ (Availability)
- มีความน่าเชื่อถือ (Reliability)
- ทดสอบง่าย (Testability)
- ทนทานต่อการมีข้อผิดพลาด (Fault Tolerance)
การตัดสินใจ (Decision)
เป็นเหมือนกฏที่สร้างขึ้นมาในระบบว่าอะไรทำได้ อะไรทำไม่ได้ ค่อนข้างชัดเจน เช่น ใน Presentation layer ห้ามมีการเข้าถึง Database แต่จะอนุญาติเฉพาะ Business และ Services Layer เท่านั้น เป็นต้น
กฏบางอย่างสามารถเปลี่ยนแปลงได้แต่ต้องได้รับการอนุญาติจากหัวหน้าหรือที่ประชุม (แล้วแต่ระดับขององค์กร)หลักการ (Design Principle)
เป็นคำแนะนำสำหรับการทำงานกับระบบนั้นๆ ซึ่งจะไม่ใช่เชิงบังคับว่าให้ทำเหมือน การตัดสินใจ (Decision) แต่เป็นคำแนะนำปลายเปิด เช่น สำหรับการส่งข้อมูลกันระหว่าง Services แนะนำให้ใช้เทคนิค asynchronous messaging เพื่อประสิทธิภาพของการทำงาน นั้นหมายถึงไม่ได้จำกัด รูปแบบการสื่อสาร (Protocol) หรือ เครื่องมือที่ใช้ นักพัฒนาสามารถเลือกได้ตามความถนัด
Posted on September 8, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024