Hexagonal architectureچیست؟
Hexagonal architecture یا ports and adapters architecture بهش گفته میشود.
معماری شش ضلعی یک سبک معماری با هدف کلی است که هدف آن ایجاد نرم افزار جدا شده است.
دکتر آلیستر کاکبورن اظهار داشت:
این اجازه می دهد تا یک برنامه به همان اندازه توسط کاربران ، برنامه ها ، تست های خودکار یا اسکریپت های دسته ای هدایت شود و از دستگاه ها و پایگاه داده های نهایی زمان اجرا شده در انزوا تهیه و آزمایش شود.
باید اشاره کرد که درگاه ها و آداپتورها ویژگی های اصلی این الگوی هستند.
مولفههای معماری شش ضلعی:
· مدل دامنه (Domain Model):
نمایشی از مفاهیم معنی دار به دامنه که باید در نرم افزار مدل سازی شود. این مفاهیم شامل داده های درگیر در تجارت و قوانینی است که مشاغل در رابطه با آن داده ها استفاده می کنند.
· درگاه (Ports):
1. درگاهای اولیه (Primary Ports):
API اصلی برنامه هستند.
مثال: توابعی که به شما امکان می دهد اشیاء، ویژگی ها و روابط را در منطق اصلی تغییر دهید.
2. درگاهای ثانویه (Secondary Ports):
رابط های آداپتورهای ثانویه هستند.
مثال: یک رابط برای ذخیره اشیاء منفرد است.
· آداپتورها (Adapters):
پلی بین برنامه و خدماتی است که توسط برنامه مورد نیاز است.
1. آداپتور اولیه (Primary Adapter):
یک قطعه کد بین کاربر و منطق اصلی است.
مثال: تابع تست واحد، کنترل کننده
2. آداپتور ثانویه (Secondary Adapter):
اجرای درگاه ثانویه است.
مثال: کلاس کوچک
مزایا و معایب معماری شش ضلعی:
در یک شکل نشان میدهم جوانب منفی ومثبت معماری شش ضلعی.
منابع:
· https://alistair.cockburn.us/hexagonal-architecture/
· https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
· https://www.cybermedian.com/what-is-hexagonal-architecture-diagram/
· https://apiumhub.com/tech-blog-barcelona/hexagonal-architecture
· https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)
#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی