Son illərdə bir çox şirkət çox sadə bir səbəbə görə Clean Architectur…
Kaan Baytan
Son illərdə bir çox şirkət çox sadə bir səbəbə görə Clean Architecture yanaşmasını tətbiq etməyə başlayıb: biznesin əsas nüvəsini təmiz saxlamaq və onu texnoloji xaosdan qorumaq.
### 1. Domain (Entities)
Burada biznesin ən saf məntiqi yerləşir:
- Entities
- Value Objects / Records
- Biznes qaydaları
Burada framework yoxdur, verilənlər bazası yoxdur. Yalnız heç vaxt pozulmamalı olan biznes qaydaları var.
### 2. Use Cases
Sistemdəki əməliyyatların icra olunduğu qatdır:
- Use Case-lər
- Axının orkestrasiya edilməsi
- Proses validasiyaları
İstifadəçi hər hansı bir əməliyyat etdikdə nə baş verəcəyinə qərar verən hissədir.
### 3. Interface Adapters
Xarici dünyanı daxili sistemin başa düşəcəyi formaya çevirən qatdır:
- Controllers
- DTO-lar / Mappers
- Ports və Adapters
- Repository interfeysləri
Bu qat biznes məntiqi ilə istifadə etdiyimiz texnologiyalar arasında bir növ “tərcüməçi” rolunu oynayır.
### 4. Frameworks & Drivers
Ən xarici qatdır və texnologiyaya bağlı olan hissələr burada yerləşir:
- REST API
- ORM-lər
- Verilənlər bazaları
- Message Queue-lar
- Framework-lər
Sabah MySQL-dən MongoDB-yə və ya Spring-dən NestJS-ə keçsəniz belə, Domain və Use Case qatlarının bundan xəbəri belə olmaz.
### Bəs Hexagonal Architecture ilə nə qədər oxşardır?
Onları bir-birinə çox yaxın arxitekturalar hesab etmək olar.
- Clean Architecture daha çox halqalar üzərindən qurulur.
- Hexagonal Architecture isə Ports & Adapters yanaşmasını daha açıq şəkildə istifadə edir.
Amma əsas fikir demək olar ki, eynidir:
- Biznes məntiqini texnologiyadan ayırmaq
- Texnoloji asılılıqları azaltmaq
- Daha rahat test edilən proqram təminatı yaratmaq
- Sistemin saxlanmasını və inkişaf etdirilməsini asanlaşdırmaq
#CleanArchitecture #SoftwareArchitecture #HexagonalArchitecture #DomainDrivenDesign #DDD #BackendDevelopment #SoftwareEngineering #SystemDesign #CleanCode #SOLID #UseCases #DomainLayer #PortsAndAdapters #Microservices #ModularMonolith #Backend #Programming #Developer #CodeQuality #MaintainableCode