معماری پاک یعنی جداسازی سیاست از جزئیات. با رعایت قانون وابستگی، منطق دامین از فریمورک، پایگاه داده و UI جدا میماند و تغییرات آینده ارزانتر میشود.
لایهها
- دامین (Entities): قوانین اصلی کسبوکار بدون وابستگی به I/O.
- کاربرد (Use Cases): هماهنگی دامین برای تحقق یک هدف کاربر؛ پورتها را تعریف میکند.
- آداپترها: تبدیل ورودی/خروجی (HTTP، DB، پیام) به مدل دامین.
- زیرساخت: فریمورک، پایگاه داده، پیامرسان؛ فقط به آداپترها وابسته است.
قانون وابستگی
وابستگیها باید به سمت مرکز پایدار (دامین) بروند. لایههای بیرونی نباید در دامین import شوند. این قانون را با lint و ساختار پوشه enforced کنید.
گامهای عملی
- پورتهای ریپو و سرویس خارجی را در لایه کاربرد تعریف کنید.
- آداپتر DB و HTTP را جدا بنویسید و در ورودی برنامه wiring کنید.
- تستهای سریع برای دامین و use case با فیکها بنویسید؛ تستهای ادغام جدا.
- با یک ماژول مونوولیت شروع کنید؛ جداسازی سرویس را بعد از تثبیت مرزها انجام دهید.
چکلیست انتشار
- تغییر قانون کسبوکار فقط فایلهای دامین/کاربرد را لمس کرده است.
- آداپترها فاقد منطق دامین هستند.
- واردات outward وجود ندارد (infrastructure → adapters → application → domain).
- تستهای use case بدون شبکه/دیسک میگذرند.
با این چارچوب، پیادهسازیها عوض میشوند اما سیاست دامین سالم میماند.
ادامه مطالعه