Son yıllarda, Altıgen Mimari - yani Bağlantı Noktaları ve Adaptörler…
Kaan Baytan
Son yıllarda, Altıgen Mimari - yani Bağlantı Noktaları ve Adaptörler - büyük şirketler arasında çok popüler hale geldi ve bu bir tesadüf değil. Neden bu kadar iyi çalıştığına kısaca bir göz atalım.
Öncelikle Altıgen Mimarinin esas olarak birbirinden net bir şekilde ayrılmış 3 katmandan oluştuğunu belirtelim:
1. Etki Alanı
Sistemin kalbidir.
Tüm iş mantığı burada bulunur ve bu mantık çerçevelerden, veritabanlarından ve API'lerden tamamen bağımsızdır.
Bir alan adı genellikle şunları içerir:
Varlıklar — evet, bunlar veritabanındaki varlıklar değil
Değer Nesneleri — değişmez nesneler
İş kuralları
Alan Adı Hizmetleri
Özel istisnalar
Ana fikir: Sistemin en önemli kısmı mümkün olduğunca saf ve istikrarlı kalmalıdır.
2. Başvuru
Bu katman, sistemin giriş ve çıkışını kontrol eden bir tür "kontrolör" görevi görür.
Bunlar genellikle burada bulunur:
Kullanım Durumları
DTO'lar ve Haritalayıcılar
IN Bağlantı Noktaları — sisteme giren işlemler
OUT Bağlantı Noktaları — altyapı katmanına giden işlemler
Bu katman, iş mantığının teknik detaylarla karıştırılmasını önler ve sistemin yapısının daha derli toplu kalmasını sağlar.
3. Altyapı
Tüm teknik detaylar zaten burada:
Çerçeveler
Veritabanları
Mesaj Kuyrukları
DİNLENME
GrafikQL
SMTP
Dış sistemlerle entegrasyonlar
Bu katman Bağdaştırıcıları uygular.
Adaptörler sayesinde:
Etki alanı katmanına dokunmadan MySQL'den MongoDB'ye geçiş yapmak mümkündür
İstekler harici API'lere gönderilebilir
Kuyruklardan mesaj alınabiliyor
Çerçevelerle çalışmak mümkündür
Teknik ayrıntılar dahili iş kurallarını kirletmez
Bağlantı Noktaları ve Adaptörler yaklaşımı sayesinde Altyapı en esnek katmanlardan biri haline gelir.
hastagta'yı ver
#HexagonalArchitecture #PortsAndAdapters #SoftwareArchitecture #CleanArchitecture #DomainDrivenDesign #DDD #BackendDevelopment #SoftwareEngineering #SystemDesign #DomainLayer #ApplicationLayer #InfrastructureLayer #UseCases #CleanCode #SOLID #Microservices #ModularMonolith #Backend #Programming #Developer #KodKaliteli #BakımlanabilirKod
