⚡ÖZET VE TEKNİK CEVAP
Geleneksel 3 katmanlı mimarilerde (Controller -> Service -> Repository), iş mantığı neredeyse her zaman framework ve veritabanı bağımlılıklarıyla kirlenir: Domain sınıfları ORM modellerinden türer (@Entity etiketleri), servis metotları doğrudan HTTP Request nesnesi alır ve veritabanını Postgres'ten DynamoDB'ye taşımak tüm servis katmanını baştan yazmayı gerektirir. Alistair Cockburn tarafından geliştirilen Altıgen Mimari (Hexagonal Architecture / Ports & Adapters), Etki Alanı Mantığını (Domain) altıgenin tam merkezine yerleştirerek bu sorunu çözer:
Portlar (tamamen saf dilde domain tarafından tanımlanan arayüzler: SiparisDeposuPort, OdemePort), ve
Adaptörler (dış dünyadaki teknolojileri bu portlara bağlayan dönüştürücüler: PostgresSiparisAdaptor, StripeOdemeAdaptor, ExpressHttpAdaptor). Domain katmanının hiçbir framework, veritabanı veya UI bağımlılığı yoktur; bu da iş mantığının veritabanı veya sunucu olmadan mikrosaniyeler içinde saf birim testleriyle test edilmesini sağlar.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Bir kredi onaylama platformunun risk hesaplama algoritması eski bir MongoDB Mongoose servisinin içine gömülmüştü. ACID uyumluluğu için PostgreSQL'e geçilirken servisi baştan yazmak kredi faiz mantığını bozdu. Ekip Altıgen Mimari'ye geçti: Risk mantığını saf TypeScript KrediDegerlendirici domain sınıfına çıkardılar. Bir KrediDeposuPort arayüzü ve iki ayrı adaptör (MongoKrediAdaptor ve PostgresKrediAdaptor) yazdılar. İki adaptörü canlıda paralel çalıştırarak 10.000 kredide sonuçları kıyasladılar ve tek bir iş kuralı bozulmadan Postgres'e geçişi tamamladılar.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaAltıgen Mimaride bir Port ile bir Adaptör arasındaki temel fark nedir?
Altıgen Mimari etki alanı birim testlerini neden çok daha hızlı ve kolay hale getirir?
Altıgen Mimari (Hexagonal Architecture): Portlar & Adaptörler ile Saf Etki Alanı Mantığı — Sıkça Sorulan Sorular
Clean Architecture ile Hexagonal Architecture aynı şey midir?
Temel ilkeleri birebir aynıdır (merkezde saf domain, dışa bağımlılıkların tersine çevrilmesi). Clean Architecture bu prensibe ek olarak katmanları (Varlıklar, Kullanım Durumları, Controller) daha katı tanımlar.
Altıgen Mimari ne zaman gereksiz bir iş yüküne (overhead) dönüşür?
İş kurallarının neredeyse hiç olmadığı, veritabanı tablolarının doğrudan listelendiği basit CRUD servislerinde veya hızlı prototiplerde.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Altıgen Mimari temel iş mantığını framework'lerden, veritabanlarından ve dış API'lardan izole eder.
- ▸
Portlar saf domain arayüzleridir; Adaptörler dış altyapıyı portlara bağlar.
- ▸
Veritabanı veya sunucu çalıştırmadan bellek içinde yıldırım hızında birim testleri yapmayı sağlar.
- ▸
Tüm bağımlılık okları katı bir şekilde dışarıdan içeriye, saf domain çekirdeğine doğru bakar.
Yaygın Yanılgılar
- ✗
Yanılgı: Framework değiştiğinde tüm sistem baştan yazılmalıdır (Gerçek: Yalnızca ilgili dış adaptör yeniden yazılır; çekirdek iş mantığına tek satır bile dokunulmaz).
- ✗
Yanılgı: Veritabanı ORM modelleri domain çekirdeğinin içinde yer almalıdır (Gerçek: ORM etiketleri domain'i veritabanına bağlar ve saflığını bozar).
Karar Kılavuzu & Önceliklendirme
Zengin iş kurallarına sahip kritik sistemlerde uzun ömürlülük, test edilebilirlik ve teknoloji bağımsızlığı için Altıgen Mimariyi tercih edin.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL_DOCUMENTATION]Hexagonal Architecture: Ports and Adapters Pattern— Alistair Cockburn (alistair.cockburn.us)
