دوستان میخواستم بدونم که دقیقا معماری Clean Architecture چی هست؟ استفاده از این معماری در چه پروژه هایی پیشنهاد میشه و نحوه پیاده سازی این معماری چجوریه؟
کلا یک پروژه با داشتن یک معماری مشخص و خاص با پروژه ای که هیچ گونه معماری نداره چه تفاوتی داره؟
معماری Clean Architecture چیست ؟
خب معماری تمیز یا به عبارتی کدنویسی تمیز یا همون Clean Architecture یا Clean Code به مجموعه ای از قواعد گفته میشه که بهتر هست حین توسعه سیستم رعایت بشه تا کدهایی خواناتر و ساختاری محکتر داشته باشید. اما شاید بخواید بدونید این قواعد چی هستن.
قواعد معماری Clean Architecture
قبل از اینکه قواعد معماری تمیز رو بگم باید دقت کنید که این قواعد توسط برنامه نویسان مطرح و بزرگ دنیا پیشنهاد شده و ممکنه در کتابهای مختلف قواعد متفاوتی مطرح شده باشه. اما یکی از برنامه نویسانی که در زمینه معماری تمیز یا Clean Architecture کتابی نوشته و در این زمینه صحبت کرده آقای Bob Uncle (باب آنکل) هست. ایشون در کتابشون در مورد معماری تمیز قواعد زیر رو مطرح می کنن :
موارد بالا مهمترین خواسته های Clean Architecture می باشند.
پروژه های مدرن از چه معماری استفاده می کنند ؟
در کتاب راهنمای معماری پروژه های مدرن برای پیاده سازی یک پروژه تمیز 5 لایه در نظر گرفته شده است.
نکته مهم اینکه لایه در پروژه حتما به این معنی نیست که بایستی برای هر کدام از موارد بالا یک پروژه جداگانه تعریف کرد. اما در حالت ایده آل بهتر است هر کدام از موارد بالا در یک پروژه جداگانه تعریف شود و از بالا به پایین رفرنس دهی انجام شود.
توجه کنید در معماری تمیز نیازی به استفاده از لایه Service و Repository ها نیست. چون اصولا هر عملیاتی در کلاس مخصوص به خود انجام می شود و CommandModel خاص خود را دارد.
کاربرد لایه Domain در معماری Clean Architecture
این لایه درونی ترین لایه پروژه می باشد و در مرکز هسته نرم افزار قرار دارد. تعاریف دیتابیس و ساختار دیتابیس و جداول در این لایه قرار می گیرد.
کاربرد لایه Application در معماری Clean Architecture
در این لایه قواعد دیتابیس و پروژه، سرویس های مورد نیاز،اعتبارسنجی داده ها و عملیات ذخیره و بازیابی اطلاعات انجام می شود.
کاربرد لایه Presentation در معماری Clean Architecture
همان طور که از نام این لایه مشخص است در این لایه UI پروژه و دستورات اصلی برنامه قرار می گیرد. در واقع پروژه اصلی شما در این لایه قرار دارد.
کاربرد لایه Infrastructure در معماری Clean Architecture
هر چیزی که در سایر لایه ها جایگاهی ندارد در این لایه جایگذاری می شود. مثلا ایجاد سرویس های ارسال ایمیل یا پیامک، متغیرهای سراسری و ...
کاربرد لایه Persistence در معماری Clean Architecture
شاید پیاده سازی این لایه زیاد ضروری نیست چون کاربرد این لایه در لایه Application تعریف شده است. اما برخی از ساختاریهای دیتابیس و یا تغییرات دیتابیسی را می توان در این لایه قرار داد. (این لایه استفاده های خاص دارد)
البته همان طور که در بالاتر هم گفته شد در کتاب های مختلف ممکن است لایه بندی ها و یا قواعد متفاوتی ذکر شده باشد. شما می توانید فیلم زیر رو که در مورد انواع معماری های نرم افزاری خصوصا معماری DDD می باشد رو مشاهده کنید. این فیلم مربوط به دوره آموزشی اتوماسیون اداری تحت وب با Asp.net Core 3.1 می باشد.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
54
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
93
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
394
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
561
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
54
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
93
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|