Clean Architecture Nedir ?
4 ayrı bileşeni vardır ve bunlara Clean Arthitecturenin layerları denir.Clean Arthitecturenin merkezinde sistemin core kısmını temsil eden Domain Layer yer alır. Domain Layerın etrafında, Domain katmanını düzenleyen ve busines logici nasıl gerçekleştireceğini söyleyen Application katmanı yer alır. Mimarinin en dışında da Presentation ve Infrastructure katmanlarına sahibiz.
Celan Arthitecturede coredan başlayıp dışarıya doğru ilerleyeceğiz.
Domain Layer katmanında en önemli busines kurallarını içeren Domain Entities, Aggregates, Value Objects, Domain Events, Repository Interfaces, Factory Interfaces ve Domain Services gibi yapıları tanımlarız. Burası ayrıca Custom Exceptionları tanımlamak için uygun bir yerdir.
Domain layerda dikkat etmemiz gereken en büyük kural bu layer dış katmanlardan hiç birini reference almamalıdır. Fakat diğer layerlar domain layeri referance alabilir.
Application Layer bu katman sistemimiz için bir orchestrator(düzenleyici) görevi görür. Burada önemli Use Caseleri tanımlayacağız. Tipik olarak bu katman bir dizi application servisi olarak implemente edilir. Eğer CQRS uygulanıyorsa Command Ve Querylerde bu katmanda yer alır.
Infrastructure Layer burada External Systemle alakalı herşey yer alacak. Database Access, Message Queues(RabbitMQ or Kafka), Email and Notification Services, Storage Services.
Bu katman entegre etmemiz gereken tüm external sistemler için uygulama detaylarını gizlemekten sorumludur.
Presentation Layer, Userların sistemimizle etkileşime girebilmesi için bir entry point(giriş noktası) tanımlamak için kullanılır.Genelde
- There will be not any reference to Domain Library
- Application: Add reference of Domain project
- Infrastructure: Add reference of application project
- WebApi: Add reference of application and Infrastructure projects
Hiç yorum yok:
Yorum Gönder