Skip to content

Az implementáció tükrözi a tervet

Miért?
Az olyan megvalósítás, amely tetszés szerint eltérhet a tervtől, egyenes úton vezet a karbantarthatatlanságba. A megvalósításnak szüksége van egy terv által meghatározott fizikai keretre.

Az architektúrának és az implementációnak nem kellene fednie egymást, hogy a DRY elvet betartsuk. Így lehet elkerülni az inkozisztenciát, ami az által léphetne fel, hogy az egyik oldalon megváltozik valami anélkül, hogy a másik oldalon ezeket a változásokat követnénk.Mindennek ellenére az architektúra tesz kijelentésket az implementációról. Nem a részleteiről, hanem az alapvető formájáról. Az architektúra határozza meg a struktúra elemeit és azok viszonyát egy kódrendszeren belül. Az implementáció tehát az átfedések hiányában sem létezhet függetlenül az architektúrától, hanem inkább csak benne.

Éppen ennek kell megjelennie az implementációban. Így könnyebben érthető lesz, így könnyebben lehet biztosítani, hogy az implementáció tényleg kövesse az architektúrát. Az architektúra által különböző absztrakciós szinten meghatározott struktúra elemeknek ezért nem kellene egy nagy „kódvödörbe” (pl. egy nagy Visual Studio solution) „összevonásra kerülniük”. Sokkal jobb, már csak a magas produktivitás és a tesztelhetősg érdekében is, az architektúra logikai struktúráit a lehető legfizikaibb módon megjeleníteni.

  1. Az architektúra által különböző absztrakciós szintre tervezett struktúráknak amennyire csak lehet tükröződniük kell a kód elrendezésben. Ez egyik oldalon azt jelenti, hogy az architektúra mint struktúra elemeket elsősorban fizikai kódegységeket használ. És a másik oldalon ezeknek a struktúraelemeknek a forráskódban ill. a repository kód elrendezésében tisztán kivehetőnek kell lenniük.
  2. A struktúraelemek implementációja közben és különösen a komponensek belsejében lehetetlennek kell lenniük az „mellékes” architektúraváltoztatásoknak. Aki egy struktúraelemben vagy elemen dolgozik, tehát egy részen, annak nem szabad ad hoc megváltoztatnia a környező struktúrát, tehát az egészet. Csak amikor ez biztosítva van, akkor nem fog kontrollálatlanul nőni a szoftver entrópiája. Ez fontos, mert az architektúra fő célja, a szoftver entrópiájának és ezzel a komplexitásának minimalizálása.

A tervezésre szükség van. Az implementációnak nem szabad megtorpedóznia a tervezést. (Természetes, ha az implementáció felismerései visszahathatnak a tervezésre.) Ezért kell a tervezést és az implementációt szétválasztani. És ahol ez nem lehetséges, ott a tervezésnek az implementáció eszközeivel kellene dolgoznia és az implementációnak a tervezést fizikailag tükröznie kell.

Published inElvek