Ohraničený kontext (bounded context)

Aktualizované Sep 23, 2026

Ohraničený kontext je explicitná hranica, v ktorej konzistentne platí určitý doménový model, terminológia a súbor pravidiel. Ten istý biznisový objekt môže mať mimo tejto hranice odlišný model. Pri modernizácii legacy systémov pomáhajú ohraničené kontexty identifikovať ucelené moduly či služby a odhaľujú preklady potrebné pri vzájomnej interakcii týchto častí.

Ohraničený kontext určuje sféru platnosti jedného doménového modelu a jeho jazyka. Vo vnútri tejto hranice by mali byť pojmy, identifikátory, pravidlá a vlastníctvo konzistentné. Mimo nej však môže iná časť biznisu reprezentovať rovnakú vec z reálneho sveta odlišne, pretože ju využíva na iné účely.

Prečo jeden model niekedy nestačí

Legacy aplikácia môže používať jeden spoločný záznam pre predaj, fakturáciu, podporu a reportovanie. Každá z týchto oblastí pritom vyžaduje iné polia a pravidlá. Ak sa s takýmto záznamom zaobchádza ako s jedným univerzálnym modelom, zmena vykonaná pre jednu oblasť nevyhnutne ovplyvní všetky ostatné.

OtázkaČo odhaľujeSignál hranice
Čo tu tento pojem znamená?Lokálny biznisový jazykVýznamy sa v jednotlivých oblastiach líšia
Kto mení toto pravidlo?Vlastníctvo rozhodnutíRôzni vlastníci alebo smernice
Ktoré dáta sú autoritatívne?Zdroj pravdy (source of truth)Samostatná zodpovednosť za zápis
Čo sa mení spoločne?Súdržnosť (cohesion)Stabilné skupiny správania

Ohraničený kontext počíta s tým, že modely sa môžu líšiť. Integrácia medzi nimi sa tak stáva explicitným kontraktom namiesto náhodného používania zdieľaného vnútra systému.

Hľadanie kontextov v legacy kóde

Názvy priečinkov málokedy poskytujú dostatok dôkazov. Súčasná štruktúra môže kopírovať technické vrstvy, niekdajšie hranice tímov alebo konvencie frameworku. Audit legacy kódu (legacy codebase audit) spája dôkazy z kódu s jazykom, ktorý používajú ľudia prevádzkujúci daný systém.

Mapovanie zahŕňa najmä tieto aktivity:

  • Sledovanie biznisových procesov (trace business workflows). Sledovanie úlohy od jej vstupného bodu cez pravidlá a úložisko až po externé volania.
  • Zaznamenávanie slovnej zásoby (record vocabulary). Hľadanie miest, kde to isté slovo označuje odlišné polia, stavy alebo rozhodnutia.
  • Určenie vlastníctva zápisov (locate write ownership). Identifikácia kódu, ktorý má oprávnenie vytvárať alebo meniť konkrétne záznamy.
  • Skúmanie histórie zmien (inspect change history). Vyhľadávanie kódu, ktorý sa opakovane upravuje z rovnakého biznisového dôvodu.
  • Označenie integrácií (mark integrations). Dokumentovanie volaní a presunov dát medzi navrhovanými kontextmi.

Výsledkom je hypotéza, ktorú tím následne overuje voči skutočnému správaniu systému. Nedá sa odvodiť čisto iba z počtu tried alebo databázových tabuliek.

Od kontextu k hranici v kóde

Ohraničený kontext predstavuje hranicu modelu, nie vyžadovaný štýl nasadenia. Môže sa stať modulom vo vnútri modulárneho monolitu, alebo slúžiť ako základ pre jednu či viac samostatne nasadených služieb. Výber závisí od potrieb vydávania verzií, škálovania, spoľahlivosti a vlastníctva.

V miestach interakcie kontextov by mal kontrakt presne pomenovať vymieňané dáta a správanie. Keď nový kontext potrebuje spolupracovať s legacy modelom, ktorého terminológia a pravidlá by nemali prenikať do nového návrhu, preklad môže zabezpečiť Izolačná vrstva medzi systémami (Anti-Corruption Layer).

Čo zaznamenáva audit

Audit legacy kódu dokumentuje každý navrhovaný kontext, jeho jazyk, vlastnené dáta, verejné operácie, volajúcich a závislosti. Označuje tiež nevyriešené oblasti, kde je vlastníctvo zdieľané alebo sa rovnaké pravidlo objavuje na viacerých miestach.

Táto mapa určuje poradie, v akom prebehne refaktoring. Tím môže posilniť internú hranicu pred tým, než sa uskutoční vyčlenenie služby, alebo ju ponechať vo vnútri monolitu, ak samostatné nasadenie nemá jasný účel. Ohraničený kontext poskytuje sémantickú hranicu, zatiaľ čo migračný plán určuje, ako a kedy sa zmení hranica softvéru.