Sobes.tech
Middle

Proč je v aplikaci potřeba každá architektonická vrstva?

sobes.tech AI

Odpověď od AI

Architektonické vrstvy pomáhají rozdělit odpovědnosti, zlepšit udržovatelnost a testovatelnost aplikace.

  • Vrstva prezentace: Je zodpovědná za zobrazování uživatelského rozhraní a interakci s ním. Přijímá data z vrstvy domény a je transformuje pro zobrazení. Odesílá akce uživatele do vrstvy domény.
  • Vrstva domény: Obsahuje obchodní logiku aplikace. Je nezávislá na UI a infrastrukturních detailech. Zahrnuje entity, případy použití a repozitáře ve formě rozhraní.
    • Entity: Představují hlavní obchodní objekty.
    • Případy použití (Interactors): Definují scénáře interakce s aplikací. Orchestruji práci repozitářů a entit pro vykonání konkrétních úkolů.
    • Repositáře (Rozhraní): Definují smlouvy pro získávání a ukládání dat. Implementace se nachází v datové vrstvě.
  • Datová vrstva: Je zodpovědná za získávání a ukládání dat. Zahrnuje implementace repozitářů, zdroje dat a datové modely.
    • Implementace repozitářů: Implementují rozhraní repozitářů definovaná v vrstvě domény.
    • Zdroje dat: Poskytují přístup k různým zdrojům dat (API, lokální databáze, sdílené preference atd.).
    • Modely (DTOs): Představují formát dat používaný pro komunikaci se zdroji dat, odlišný od entit ve vrstvě domény.

Příklad struktury vrstev:

lib/
├── main.dart
├── prezentace/
│   ├── widgety/
│   ├── stránky/
│   ├── bloky/  // nebo jiné správce stavu
├── doména/
│   ├── entity/
│   ├── usecases/
│   ├── repositories/
├── data/
│   ├── repositories/
│   ├── zdrojeDat/
│   ├── modely/

Schéma závislostí:

Prezentace vrstva -> Doména vrstva <- Data vrstva. (Data a prezentace závisí na doméně, ale doména na nikoho).