
Testy architektury: jak zabetonovat pravidla architektury přímo do kódu
Architektonická pravidla, která existují jen v dokumentaci, se dříve nebo později poruší. Není to otázka jestli, ale kdy.
Přejít na obsah|Přejít k hlavnímu menu|Přejít k vyhledávání
Vývoj software je dynamický obor, ve kterém se neustále objevují nové nástroje a trendy. Pokud ale chceme vyvíjet kvalitní software, nestačí tyto nástroje a trendy jen aplikovat, musíme skutečně porozumět, jak fungují a jaká případná rizika s sebou nesou.
Když jsem začínal tvořit svoje první webové stránky, neměl jsem ještě doma k dispozici internet a vše čerpal z tištěných časopisů a prozkoumávání zdrojových kódů fanzinů v přílohách herního časopisu Score. Díky tomu jsem byl v HTML a CSS “jako doma”, což mi později výrazně pomáhalo nejen při kódování šablon nových stránek, ale také v řešení případů, kdy něco nefungovalo tak jak má.
V dnešní době už zdánlivě takové znalosti nejsou potřeba. Stačí použít nějaký front-endový framework a stránku prostě poskládat z toho, co je dostupné. Co když se ale objeví nějaký problém? Dokážeme ho identifikovat a správně vyřešit?
Slyšeli jste někdy větu „640K by mělo stačit každému“? V roce 1985 bylo opravdu potřeba, aby každý vývojář uměl s pamětí správně pracovat. V dnešní době už nemáme tak přísné limity a správu paměti už máme tak nějak automaticky vyřešenou používáním různých nástrojů a frameworků. Nebo prostě koupíme výkonnější hardware. Často kroutím hlavou nad sledováním křivek z monitorovací aplikace a ptám se: “opravdu to nejde udělat lépe”?
How Prince of Persia Defeated Apple II's Memory Limitations
Díky AI jsou navíc situace, kdy plně nevěnujeme pozornost základům, stále častější. AI dokáže kód napsat mnohem rychleji a pokud funguje, máme na první pohled vyhráno. Víme ale skutečně, co kód dělá? Dokážeme ověřit, že opravdu funguje správně? Pokud AI používáme pro psaní kódu, musíme být schopni verifikovat její výsledky. To znamená, že musíme rozumět základům. Nemůžeme jen tak vygenerovat zdrojový kód a věřit, že je vše v pořádku.
Musíme brát v potaz také fakt, že AI se stále učí na nových datech, nových zdrojových kódech, které ale můžou být z velké části také generovány AI. Pokud budeme přemýšlet tak, že se něco naučíme nesprávně, vytvoříme z toho něco nesprávného. A řetězovou reakcí se můžeme dostat do bodu, kdy výsledky z AI budou naprosto nepoužitelné.
Schopnost řešit základní problémy se tak pomalu může vytrácet jak z hlav lidských vývojářů, tak umělých pomocníků. Kdo z toho nakonec bude těžit? Lidé, kteří jsou schopni takové věci řešit. Lidé se znalostí základů a toho, jak vše funguje.
Nespoléhejme se tedy na to, že „na tohle už existuje řešení“, ale piďme se po tom, jak takové řešení funguje. Porozumění hlubším principům a základním stavebním blokům softwaru je a vždy bude klíčové pro tvorbu robustních, udržitelných a kvalitních aplikací.
Nevidím problém v používání nástrojů, které zvyšují efektivitu, ale pozoruji, že se postupně vytrácejí ony fundamentální znalosti, ty nové často podléhají současným trendům a jejich poločas rozpadu se často počítá jen na dny nebo týdny. Vývoj jde kupředu obrovskou rychlostí, ale při vývoji softwaru musíme myslet také na stabilitu, kvalitu a udržovatelnost.
Nezřídka se stává, že náš software běží roky například v provozech, kde není možné každý týden nainstalovat novou aktualizaci nebo opravný patch, ať už z provozních nebo bezpečnostních důvodů. Každý problém může vést k velkým finančním ztrátám.

Architektonická pravidla, která existují jen v dokumentaci, se dříve nebo později poruší. Není to otázka jestli, ale kdy.
Děkujeme za váš zájem o odběr našeho newsletteru! Pro dokončení registrace je potřeba potvrdit vaše přihlášení. Na zadaný e-mail jsme vám právě zaslali potvrzovací odkaz. Klikněte prosím na tento odkaz, aby bylo vaše přihlášení dokončeno. Pokud e-mail nenajdete, zkontrolujte prosím složku nevyžádané pošty (spam) nebo složku hromadné pošty.
