معماری ششضلعی چیست؟#
این معماری که توسط Alistair Cockburn مطرح شد، کد برنامه را به دو بخش تقسیم میکند: «هسته کسبوکار» که دستنخورده باقی میماند، و «آداپتورهای بیرونی» (مثل REST API، دیتابیس PostgreSQL یا ارسال پیامک). اگر بخواهید دیتابیس را از SQL به Mongo تغییر دهید، منطق تجاری حتی یک خط هم تغییر نمیکند!
یک تشبیه روزمره#
کنسول بازی پلیاستیشن؛ کنسول بازی دارای درگاه ورودی HDMI و پورت دسته بازی است. شما میتوانید کنسول را به تلویزیون ۴K سونی، مانیتور الجی یا پروژکتور سینمایی وصل کنید و بازی بدون تغییر اجرا میشود.
اجزای معماری#
- پورتهای ورودی (Driving Ports): واسطهای فراخوانی سیستم
- پورتهای خروجی (Driven Ports): واسطهای ذخیرهسازی و ارتباط
- آداپتورها: کدهای اختصاصی برای فریمورکها و دیتابیسها