Sobes.tech
Middle

Prečo je v aplikácii potrebná každá architektonická vrstva?

sobes.tech AI

Odpoveď od AI

Architektonické vrstvy pomáhajú pri rozdeľovaní zodpovedností, zlepšujú udržiavateľnosť a testovateľnosť aplikácie.

  • Vrstva prezentácie: Zodpovedá za zobrazovanie používateľského rozhrania a interakciu s ním. Prijíma údaje zo vrstvy domény a ich transformuje na zobrazenie. Posiela akcie používateľa do vrstvy domény.
  • Vrstva domény: Obsahuje obchodnú logiku aplikácie. Je nezávislá od UI a infraštruktúrnych detailov. Zahŕňa entity, prípady použitia a repozitáre vo forme rozhraní.
    • Entity: Predstavujú hlavné obchodné objekty.
    • Prípady použitia (Interaktory): Definujú scenáre interakcie s aplikáciou. Orchestruju prácu repozitárov a entít na vykonanie konkrétnych úloh.
    • Repozitáre (Rozhrania): Definujú zmluvy na získavanie a ukladanie údajov. Implementácia sa nachádza v dátovej vrstve.
  • Dátová vrstva: Zodpovedá za získavanie a ukladanie údajov. Zahŕňa implementácie repozitárov, zdroje údajov a modely údajov.
    • Implementácie repozitárov: Implementujú rozhrania repozitárov definované v vrstve domény.
    • Zdroje údajov: Poskytujú prístup k rôznym zdrojom údajov (API, lokálna databáza, zdieľané preferencie atď.).
    • Modely (DTOs): Predstavujú formát údajov používaný na komunikáciu so zdrojmi údajov, odlišný od entít vo vrstve domény.

Príklad štruktúry vrstiev:

lib/
├── main.dart
├── prezentácia/
│   ├── widgety/
│   ├── stránky/
│   ├── bloky/  // alebo iní manažéri stavu
├── doména/
│   ├── entity/
│   ├── prípadyPoužitia/
│   ├── repositáre/
├── dáta/
│   ├── repositáre/
│   ├── zdrojeDát/
│   ├── modely/

Schéma závislostí:

Vrstva prezentácie -> Vrstva domény <- Dátová vrstva. (Dáta a prezentácia závisia od domény, ale doména od nikoho).