Architektúraábrák olvasása: C4, szekvencia és állapot
Célok
A lecke végére el tudod dönteni, milyen kérdésre válaszol egy architektúraábra, fel tudod ismerni a C4-modell szintjeit, és értelmezni tudod a szekvencia- és állapotdiagramot.
Miért nem elég egyetlen ábra?
Egy ábra mindig egy kérdésre felel. Ha egyetlen rajzra kerülnek a felhasználók, a modulok, az adatbázistáblák és a szerverpéldányok, az olvasó nem tudja, milyen szinten kell értelmeznie a nyilakat. A tananyag ábrái ezért mindig megnevezik, melyik nézetet mutatják (lásd 1.1).
A C4-modell
A C4-modell egymásba nagyítható nézeteket ad; a négy szint a Context, Container, Component és Code.
Szint
Mit mutat?
Kinek hasznos?
Context
A rendszert egyetlen dobozként, a felhasználókkal és a külső rendszerekkel
Mindenkinek
Container
A futtatható egységeket: alkalmazást, adattárolót
Fejlesztőknek, üzemeltetőknek
Component
Egy container belső felelősségeit
Az adott egységen dolgozóknak
Code
Osztályokat, interfészeket
Csak ha egy megoldást meg kell érteni
A C4-ben a container alkalmazást vagy adattárolót jelent; nem feltétlenül Docker-konténert. A szintekből csak a kérdéshez szükségeseket érdemes használni.
flowchart LR
U["Felhasználó"] -->|"használja"| S["A vizsgált rendszer"]
S -->|"kérést küld"| X["Külső rendszer"]
Az ábra egy C4-szemléletű Context-nézet általános Mermaid-jelöléssel; a dobozok nem hivatalos C4-ikonok, a szintet a cím és a felirat adja.
Szekvenciadiagram
A szekvenciadiagram az együttműködő résztvevők üzeneteit időrendben mutatja: a függőleges vonalak a résztvevők, az idő felülről lefelé halad. Azt magyarázza, ki kivel kommunikál és milyen sorrendben. Az idők nem skálaarányosak: két nyíl távolsága nem jelent mért késleltetést.
sequenceDiagram
participant K as Kliens
participant S as Szolgáltatás
K->>S: Kérés
alt Siker
S-->>K: Eredmény
else Hiba
S-->>K: Hibajelzés
end
Az alt alternatív útvonalat jelöl. A folytonos nyíl kérést, a szaggatott választ jelent; a választ nem kell sikernek érteni.
Állapotdiagram
Az állapotdiagram egyetlen elem lehetséges állapotait és az átmeneteket mutatja. Azt mondja meg, mit szabad csinálni, ha az elem egy adott állapotban van.
stateDiagram-v2
[*] --> Varakozik
Varakozik --> Fut: felvették
Fut --> Kesz: siker
Fut --> Hibas: végleges hiba
Kesz --> [*]
A két diagram egymást egészíti ki: a szekvencia a kommunikációt, az állapotdiagram a következményt mutatja. A hiányzó átmenet nem jelenti, hogy a valóságban nem érkezhet ilyen üzenet; a késői vagy ismételt üzenetet is kezelni kell.
Az ábra ellenőrzése
Olvasáskor három kérdés segít: melyik nézetet látom, mit jelentenek a nyilak (irány, kezdeményező, szinkron vagy aszinkron), és mi maradt ki. Egy nyíl, amelyen csak az áll, hogy „kapcsolódik”, nem mondja meg, ki kezdeményez és mit kér.
Gyakori tévhitek
Állítás
Pontosítás
„A C4 container Docker-konténer.”
Futtatható alkalmazást vagy adattárolót jelent.
„A szekvenciadiagram időskálát is mutat.”
Csak sorrendet mutat; az időt külön meg kell adni.
„Ha az ábrán nincs ilyen nyíl, nem történhet meg.”
A valóságban érkezhetnek az ábrán nem szereplő, késői vagy ismételt üzenetek.
„Egy jó ábra elég a rendszer leírására.”
Minden ábra egy kérdésre felel; több nézet kell.
Röviden
Egy ábra egy kérdésre válaszol, és meg kell neveznie a nézetét.
A C4 négy szintje: Context, Container, Component, Code.
A szekvenciadiagram a sorrendet, az állapotdiagram az életciklust mutatja.
A nyíl jelentését mindig meg kell adni.
Ellenőrző kérdések
Melyik C4-szintet használnád egy külső partnernek szánt áttekintéshez, és melyiket a belső felépítés magyarázatához?
Mit nem mutat a szekvenciadiagram?
Miért nem elég „kapcsolódik” felirat egy nyílra?
Források
C4 model: diagrams — a négy szint és a kiegészítő nézetek hivatalos leírása.
Architektúraábrák olvasása: C4, szekvencia és állapot
Célok
A lecke végére el tudod dönteni, milyen kérdésre válaszol egy architektúraábra, fel tudod ismerni a C4-modell szintjeit, és értelmezni tudod a szekvencia- és állapotdiagramot.
Miért nem elég egyetlen ábra?
Egy ábra mindig egy kérdésre felel. Ha egyetlen rajzra kerülnek a felhasználók, a modulok, az adatbázistáblák és a szerverpéldányok, az olvasó nem tudja, milyen szinten kell értelmeznie a nyilakat. A tananyag ábrái ezért mindig megnevezik, melyik nézetet mutatják (lásd 1.1).
A C4-modell
A C4-modell egymásba nagyítható nézeteket ad; a négy szint a Context, Container, Component és Code.
A C4-ben a container alkalmazást vagy adattárolót jelent; nem feltétlenül Docker-konténert. A szintekből csak a kérdéshez szükségeseket érdemes használni.
Az ábra egy C4-szemléletű Context-nézet általános Mermaid-jelöléssel; a dobozok nem hivatalos C4-ikonok, a szintet a cím és a felirat adja.
Szekvenciadiagram
A szekvenciadiagram az együttműködő résztvevők üzeneteit időrendben mutatja: a függőleges vonalak a résztvevők, az idő felülről lefelé halad. Azt magyarázza, ki kivel kommunikál és milyen sorrendben. Az idők nem skálaarányosak: két nyíl távolsága nem jelent mért késleltetést.
sequenceDiagram participant K as Kliens participant S as Szolgáltatás K->>S: Kérés alt Siker S-->>K: Eredmény else Hiba S-->>K: Hibajelzés endAz
altalternatív útvonalat jelöl. A folytonos nyíl kérést, a szaggatott választ jelent; a választ nem kell sikernek érteni.Állapotdiagram
Az állapotdiagram egyetlen elem lehetséges állapotait és az átmeneteket mutatja. Azt mondja meg, mit szabad csinálni, ha az elem egy adott állapotban van.
A két diagram egymást egészíti ki: a szekvencia a kommunikációt, az állapotdiagram a következményt mutatja. A hiányzó átmenet nem jelenti, hogy a valóságban nem érkezhet ilyen üzenet; a késői vagy ismételt üzenetet is kezelni kell.
Az ábra ellenőrzése
Olvasáskor három kérdés segít: melyik nézetet látom, mit jelentenek a nyilak (irány, kezdeményező, szinkron vagy aszinkron), és mi maradt ki. Egy nyíl, amelyen csak az áll, hogy „kapcsolódik”, nem mondja meg, ki kezdeményez és mit kér.
Gyakori tévhitek
Röviden
Ellenőrző kérdések
Források