Logická architektura softwaru

Architektura

Logická vs. Fyzická architektura

Druhy logické architektury

  • Vícevrstvá architektura
    • Monolitická - "spaghetti code"
    • Dvouvrstvá - API
    • Třívrstvá - MVC
  • Komponentová architektura
  • Servisně orientovaná architektura (SOA)
  • Roury a filtry (Pipes and filters) - Unix
  • ...

O čem to tedy je?

  • Rozdělení většího problému na menší části
  • Rozdělení zodpovědnosti v systému
  • Zpětné poskládání z části do celku
    •  Rozšiřitelnost
  • Způsob komunikace mezi částmi

We can go deeper...

GRASP návrhové vzory

  • Controller

    • Požadavky na stystém vyřizuje oddělená kontrolní vrstva (např. HTTP requesty, uživatelská interakce)

  • Creator

    • Část B vytváří část A pokud je A její částí a má pro její vytvoření dostatek informací v opačném případě B závisí na A

  • High Cohesion

    • Jedna část (kus kódu) by se měla zaměřovat na jednu věc

  • Indirection

    • Prostředník může snížit vazby mezi 2 částmi systému a zvýšit tak jejich znovupoužitelnost

General Responsibility Assignment Software Patterns

GRASP návrhové vzory 2

  • Information Expert

    • Zodpovědnost má ta část systému, která má všechny potřebné informace

  • Low Coupling

    • Snaha o co nejméně vazeb

    • Chytré rozdělení zodpovědnosti

    • Vyvarovat se cyklickým vazbám

  • Protected Variations

    • Stabilním rozhraním na klíčových místech aplikace se vyvarujeme rozbití aplikace změnami

  • Pure Fabrication

    • Oddělení "servisních" částí mimo primární funkci snižuje závislosti a zvyšuje soudružnost (např. samostatná validační vrstva)

Diskuze

Logická Architektura Softwaru

By Jindřich Máca

Logická Architektura Softwaru

  • 397