معماری Clean Architecture یک الگوی طراحی نرمافزار است که از اصول SOLID و جدا بودن بخشهای مختلف سیستم برای ایجاد سیستمهای قابل تست، قابل توسعه و قابل نگهداری استفاده میکند. این معماری، تمرکز قرار میدهد تا بخشهای مختلف سیستم از یکدیگر مستقل باشند و تغییر در یک بخش تأثیری بر سایر بخشها نداشته باشد. در ادامه، اجزا اصلی و مفاهیم اصلی Clean Architecture را توضیح میدهم:
-
Entities (موجودیتها):
موجودیتها در Clean Architecture، نمایندگان اصلی دامنه کاری سیستم هستند و حاوی دادهها و عملیات ضروری برای آنها هستند. آنها باید مستقل از هر گونه لایه فناوری باشند و باید بدون تغییر از طریق لایههای دیگر قابل دسترسی باشند. -
Use Cases (مورد استفاده):
مورد استفادهها (Use Cases) عملیاتهای مهم و قابل تعامل در سیستم را تعریف میکنند. آنها حاوی منطق کسب و کار هستند و مسئولیت انجام عملیاتهایی مانند اعمال قوانین کسب و کار، تغییر وضعیت موجودیتها و تعامل با لایههای دیگر را دارند. -
Interfaces (رابطها):
رابطها در Clean Architecture، نقشی برای تعامل بین لایهها وجود دارد. این رابطها میتوانند برای تعامل میان مورد استفادهها و لایههای خارجی مانند لایههای UI (رابط کاربری)، لایههای دسترسی به داده (Persistence) و سرویسهای خارجی استفاده شوند. -
Frameworks and Drivers (چارچوبها و درایورها):
لایه Frameworks and Drivers وظیفه ارتباط با عناصر بیرونی سیستم مانند واسط کاربری (UI)، پایگاه داده، وب سرویسها و غیره را دارد. این لایه میتواند وابستگیهای فناوری مانند فریمورکها، کتابخانهها و ابزارهای مورد استفاده در سیستم را داشته باشد.
معماری Clean Architecture از این لایهها استفاده میکند تا جدا بودن لایهها را تضمین کند و وابستگیها را کاهش دهد. هدف اصلی Clean Architecture، ایجاد یک ساختار سیستمی است که تغییرات در یک لایه بدودر ادامه توضیحات قبلی:
-
Interfaces Adapters (آداپتورهای رابط):
آداپتورهای رابط نقش تبدیل داده و تعامل با لایههای خارجی را دارند. آنها مسئولیت تبدیل دادهها از فرمت داخلی سیستم به فرمت مناسب برای لایههای خارجی و برعکس را دارند. این لایه میتواند شامل کلاسها و ماژولهایی باشد که ارتباط با لایههای خارجی مانند لایههای دسترسی به داده، وب سرویسها و سرویسهای خارجی را برقرار میکنند. -
Dependency Rule (قاعده وابستگی):
قاعده وابستگی در Clean Architecture میگوید که لایههای داخلی سیستم نباید به جزئیات لایههای خارجی وابستگی داشته باشند. به عبارت دیگر، لایههای داخلی باید از لایههای خارجی جدا باشند و وابستگی به آنها را کاهش دهند. این قاعده باعث میشود تغییر در یک لایه تأثیر کمتری بر سایر لایهها داشته باشد و قابلیت تست و نگهداری سیستم را بهبود بخشد.
معماری Clean Architecture از اصولی مانند جداسازی منطق کسب و کار از جزئیات فنی، قابل تست بودن، قابلیت توسعه و قابلیت نگهداری بالا استفاده میکند. با این معماری، قابلیت همکاری و تغییرات در سیستم بهبود مییابد و امکان استفاده از فناوریها و ابزارهای جدید نیز فراهم میشود. این معماری به صورت یک الگوی کلی ارائه شده است و میتواند بر اساس نیازها و شرایط خاص هر پروژه تنظیم شود.
ورود به سایت