Sobes.tech
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).