⚡ÖZET VE TEKNİK CEVAP
Temiz Mimari Bağımlılık Kuralı, tüm kaynak kod bağımlılıklarının yalnızca içeriye (yüksek seviyeli iş kurallarına) bakmasını şart koşar; veritabanı veya web protokollerinin çekirdek iş mantığına sızması test edilebilirliği yok eder ve sistemi kilitler.
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)
Bağımlılık Kuralını tavizsiz korumak için Bağımlılıkların Tersine Çevrilmesi (DIP) uygulanır:
- ▸
Portlar (İç Katmandaki Arayüzler): Kullanım senaryosu veri erişimi için bir arayüz tanımlar (
UserRepository { findById(id): User }). Bu arayüz sıfır altyapı bağımlılığı ile çekirdekte yaşar. - ▸
Adaptörler (Dış Katmandaki Uygulamalar): Altyapı katmanı portu uygular (
PostgresUserRepository implements UserRepository). PostgreSQL sürücülerini ve ORM'leri burada kullanır. - ▸
Alan İzolasyonu: Alan Varlıkları (Entities) dış kütüphanelerden bağımsız, saf iş mantığı ve Değer Nesneleri (
Email,Money) içerir. - ▸
Açılışta Kontrolün Tersine Çevrilmesi: Uygulama başlangıç noktası (
server.tsveya DI konteyneri) adaptörü ayağa kaldırır ve kullanım senaryosuna enjekte eder.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaTemiz Mimari'de bağımlılıkları yöneten birincil kural nedir?
Bağımlılıkların Tersine Çevrilmesi, çekirdekteki bir kullanım senaryosunun PostgreSQL import etmeden veriyi PostgreSQL'e kaydetmesini nasıl sağlar?
Temiz Mimari ve Bağımlılıkların Tersine Çevrilmesi Kuralı — Sıkça Sorulan Sorular
Bir geliştirici `@Column()` ve `@ManyToOne()` TypeORM veritabanı anotasyonlarını doğrudan `Order` Alan Varlığı sınıfına ekliyor. Hangi mimari ilke ihlal edilmiştir?
Temiz Mimari Bağımlılık Kuralı: İç alan varlığı artık harici bir veritabanı ORM çatısına sıkı sıkıya bağımlı hale getirilmiştir. Alan varlıkları saf nesneler olmalıdır. Onları ORM dekoratörleriyle kirletmek, iş modelinizi veritabanı kütüphanelerine rehin eder.
Temiz Mimari'de saf alan senaryolarını çalıştıran birim testler neden geleneksel entegrasyon testlerinden 1000 kat daha hızlıdır?
Çünkü veritabanı, Docker veya web sunucusu ayağa kaldırmadan bellek içi sahte repolarla tamamen CPU belleğinde çalışır. İş mantığını altyapıdan izole etmek, tüm iş kurallarını mikrosaniyeler içinde test eden ışık hızında bellek içi testler sağlar.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Temiz Mimari Bağımlılık Kuralı, tüm kaynak kod bağımlılıklarının yalnızca içeriye (yüksek seviyeli iş kurallarına) bakmasını şart koşar; veritabanı veya web protokollerinin çekirdek iş mantığına sızması test edilebilirliği yok eder ve sistemi kilitler.
- ▸
Bağımlılık Kuralı, dış halkaların (altyapı, web, veritabanı) iç halkalara (kullanım senaryoları, alan) bağımlı olmasını, ancak iç halkaların ASLA dış halkalara bağımlı OLMAMASINI şart koşan temel kısıtlamadır.
Yaygın Yanılgılar
- ✗
Ham HTTP
Request/Responsenesnelerini veya veritabanı satırlarını doğrudan Alan kullanım senaryolarına parametre geçmek.
Karar Kılavuzu & Önceliklendirme
İş kurallarını doğrudan çatılara (Prisma, Spring, TypeORM) bağlamak, birim testler için veritabanı ayağa kaldırmayı zorunlu kılar, framework güncellemelerini riskli yeniden yazımlara dönüştürür ve altyapı değişimini engeller.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Clean Architecture & The Dependency Inversion Rule Specification— TinyCTO Architectural Standards
