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.
Související články
Související epizody CZ Podcastu
- #261 · Leadership
O vedení lidí a týmů.
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.