Elmélet: Attribute-Driven Design 3.0
Szekció neve “Elmélet: Attribute-Driven Design 3.0”A megelőző gyakorlaton egy C4 System Context diagramot készítettünk, mely egyetlen fekete dobozként jeleníti meg a rendszerünket. Ezen a ponton ez az ábrázolás meg is felel a valóságnak: bár már választottunk architekturális stílust, azonban a rendszert felépítő kisebb alkotórészekről még semmilyen konkrét elképzelésünk nincs.
Most már viszont itt az ideje, hogy „belezoomoljunk” a rendszerbe, és elkezdjük a kisebb részekre bontását, finomítását.
Erre a felbontásra és finomításra szolgál az Attribute-Driven Design (ADD) nevű módszer, mely egy strukturált, iteratív tervezési eljárás.
A módszer elve rendkívül egyszerű: kiindulva a szignifikáns követelményekből és egy létező architektúrából (mely lehet csupán egyetlen doboz is, a teljes rendszer), iteratívan addig finomítunk, amíg a kapott architektúra meg nem felel a követelményeknek.
Valahogy így (bátran nagyítsuk az oldalt!):
Elmélet: C4 Containers
Szekció neve “Elmélet: C4 Containers”A C4 modell egy hierarchikus fogalom- és diagramrendszer.
A teljes rendszer (avagy, system) után a hierarchia következő fogalma a container, mely lehet többek közt:
- szerver-oldali webalkalmazás,
- szerver-oldali service,
- kliens-oldali webalkalmazás,
- asztali szoftver,
- mobilon futó alkalmazás,
- serverless függvény,
- adatbázis,
- és így tovább!
A containerek ábrázolására szolgál a container diagram, melyből, hasonlóan a system context diagramhoz, csupán egy lesz: a teljes rendszer, felbontva containerekre.
Közösen: ChocoMarket Container Diagram
Szekció neve “Közösen: ChocoMarket Container Diagram”Készítsünk C4 Container diagramot a ChocoMarket esettanulmányhoz!
Vegyük észre, hogy míg a System Context diagram elkészíthető volt csupán az SRS alapján (átvéve a felhasználókat, felhasználói csoportokat, valamint a külső függőségeket), addig a Container diagram elkészítéséhez már architekturális döntéseket kell hoznunk.
Azaz, a Container diagram elkészítésével párhuzamosan érdemes ADR-eket is írnunk, melyeket aztán referálhatunk is a diagramban.
A ChocoMarket Container diagramjához releváns architekturális döntések:
- Hibrid architekturális stílus.
- EDA a katalógusok betöltéséhez, modular monolith a katalógusok kiszolgálásához.
- Egyetlen adatbázis az összes adat tárolásához.
- A beolvasott csokoládék adatbázisba írása egyetlen writer service-en keresztül.
- Különálló frontendek az eltérő felhasználói csoportoknak.
Csoportmunka: Container Diagram
Szekció neve “Csoportmunka: Container Diagram”Készítsünk C4 Container diagramot az esettanulmányunkhoz!
Házi feladat
Szekció neve “Házi feladat”Bővítsük a már meglevő LikeC4 formátumú C4 System Context diagramot egy C4 Container diagram nézettel (view).
A diagramnak változatlanul a csoport GitHub tárolójában kell helyet foglalnia, az alábbi módon:
Könyvtáradr
- 01-architecture-style.md
- ac.md
- as.md
- asr.md
- diagram.likec4
- esettanulmany.md
- README.md
- srs.doc
A fontosabb döntéseket dokumentáljuk ADR-ek formájában!