Middle
Bir uygulamada her mimari katman neden gereklidir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Mimari katmanlar, sorumlulukları ayırmaya, uygulamanın bakımını ve test edilebilirliğini artırmaya yardımcı olur.
- Sunum Katmanı: Kullanıcı arayüzünü görüntülemek ve onunla etkileşim kurmakla ilgilidir. Domain Katmanından veri alır ve kullanıcıya gösterim için dönüştürür. Kullanıcı eylemlerini Domain Katmanına gönderir.
- Domain Katmanı: Uygulamanın iş mantığını içerir. UI ve altyapı detaylarından bağımsızdır. Varlıklar, kullanım durumları ve arayüzler şeklinde depolar içerir.
- Varlıklar: Ana iş nesnelerini temsil eder.
- Kullanım Durumları (Interactors): Uygulama ile etkileşim senaryolarını tanımlar. Belirli görevleri yerine getirmek için depolar ve varlıklar üzerinde düzenleme yapar.
- Depolar (Arayüzler): Veri alma ve kaydetme sözleşmelerini tanımlar. Uygulama katmanında uygulanır.
- Data Katmanı: Veri alma ve kaydetme ile ilgilidir. Depo uygulamaları, veri kaynakları ve veri modellerini içerir.
- Depo Uygulamaları: Domain Katmanında tanımlanan arayüzleri uygular.
- Veri Kaynakları: Farklı veri kaynaklarına erişim sağlar (API, yerel veritabanı, paylaşılan tercihler vb.).
- Modeller (DTOs): Veri kaynaklarıyla iletişim kurmak için kullanılan veri formatını temsil eder ve Domain Katmanındaki varlıklardan farklıdır.
Katman yapısına örnek:
lib/
├── main.dart
├── presentation/
│ ├── widgets/
│ ├── pages/
│ ├── blocs/ // veya diğer durum yönetimi
├── domain/
│ ├── varlıklar/
│ ├── kullanımDurumları/
│ ├── depolar/
├── data/
│ ├── depolar/
│ ├── datasources/
│ ├── modeller/
Bağımlılık diyagramı:
Sunum Katmanı -> Domain Katmanı <- Data Katmanı. (Data ve Sunum, Domain'e bağlıdır, ancak Domain kimseden bağımsızdır).