dagblog.
← Archiv

Více konfigurátorem než programátorem


Pokud jste se dostali do křížku s nějakou novou technologií, byli jste s velkou 
pravděpodobností vystaveni nějaké formě konfigurace. Nikoho asi nepřekvapí, že pro 
konfiguraci se široce zakořenilo XML. XML má pro tento účel plno výhod, z 
těch základních namátkou, kontrola validity, snadná editace, lidsky čitelná forma.

Většina javovských produktů si vzala výhody xml konfigurace k srdci a tak málokdy 
narazíte na jinou formu. V tomto směru existují tři váhové kategorie co do rozsahu 
konfigurace. Do první kategorie, kterou označuji za muší váha, patří rádoby 
jednoduché utilitky s konfigurací do 30 řádků např. Log4J (framework pro logování)
nebo Proxool (database connection pool).

Druhou kategorii, střední váha, tvoří konfigurace do 250 řádků. Mezi klasické 
zástupce patří servlet konfigurace resp. konfigurace webové aplikace. Do této rodiny 
patří i konfigurace, v uvozovkách jednodušších nástrojů, jako je Tomcat nebo Jetty 
(HTTP server a Servlet kontejner).

Třetí kategorii, bez váhové omezení, tvoří takové nástroje, kde konfigurace musí 
být rozdělena do více souboru, aby byla vůbec nějakým rozumným způsobem udržitelná.

Jedná se například o Model-View-Controller frameworky (Struts), IoC kontejnery

(Spring, Pico) apod.

Určitě si každý dokáže dosadit do těchto třech kategorií dosadit i produkty, které 
konfiguroval na vlastní kůži. Samozřejmě ne vždy mnou uvedení zástupci spadají do té 
či oné kategorie, mohu se pohybovat oběma směry,záleží na rozsahu projektu.

Dalším důležitým faktorem je kumulace jednotlivých konfigurací. Pro webovou 
aplikace budete potřebovat minimálně servlet a pak MVC konfiguraci. Vaše webová 
aplikace potřebuje logovat a protože spolupracuje s databází potřebuje i connection 
pool. Suma sumárum minimálně čtyři konfigurační soubory.

Absolutní extrém tvoří například IoC kontejner Spring, kde konfigurací spojujete 
jednotlivé vrstvy aplikace. Mezi ty další bych zařadil například konfiguraci deploy
adresáře J2EE serveru JBoss, ostatně EJB je v tomto taktéž extrémem. Když to 
přeženu, jeden aby se ze všech těch konfigurací zbláznil, angličtina má pro to 
výstižný výraz Metadata hell.

XML konfigurace má z aplikačního hlediska obrovskou výhodu v tom, že vás nenutí 
svazovat, pěkně česky zadrátovat, jednotlivé komponenty systému na úrovni kódu.

Dnes 
existuje velké množství nástrojů jako Ant či XDoclet, které mohou být velice 
nápomocny a konfigurační práci usnadnit.

Pokud zvážím všechna pro a proti, tak z mého pohledu se jeví výhodnější přístup 
pomocí XML konfigurací a to i za cenu, že jsem někdy více konfigurátorem než 
programátorem.

Verze na Medium

Související články

Související epizody CZ Podcastu