Ve středu 13.3.2009 se konala na půdě fakulty informatiky a managementu univerzity v Hradci Králové přednáška o tvorbě webových aplikací pomocí frameworku Spring 3.0. Přednášejícím nebyl nikdo jiný, než slavný absolvent této univerzity Jan Macháček.

Ve středu 13.3.2009 se konala na půdě fakulty informatiky a managementu univerzity v Hradci Králové přednáška o tvorbě webových aplikací pomocí frameworku Spring 3.0. Přednášejícím nebyl nikdo jiný, než slavný absolvent této univerzity Jan Macháček, který žije již sedmým rokem ve Velké Británii a aktivně se podílí na popularizaci programovacího jazyku Java a frameworku Spring. Jelikož jsem měl možnost se této přednášky zúčastnit, rád bych vám skrze tento krátký článek přiblížil pár postřehů, které jsem si z ní odnesl.

Jan Macháček v současné době pracuje pro firmu Cake Solutions (http://www.cakesolutions.net/), která se kromě jiného zaměřuje, podobně jako firma Morosystems, na zakázkovou tvorbu aplikací na platformě Java / Spring apod. Jeho jméno v komunitě Spring vývojářů je ale známé hlavně z knihy Pro Spring, které je spoluautorem. Kniha již vyšla i v pokračování (Pro Spring 2.5), které se zaměřuje na Spring 2.5 a v přípravě je i kniha o nadcházejícím Spring Frameworku 3.0. Mezi další jeho publikace, na kterých spolupracoval, pak patří Oracle Application Server 10g, či překvapivě kniha Pro Visual Studio .NET, o které ale sám na přednášce prohlásil, že byla jeho první a zároveň poslední kniha mapující .NET technologie.

Celá přednáška se nesla ve velice neformálním duchu a to také z důvodu toho, že se hlavně programovalo. Pan Macháček nás provedl základní konfigurací Springu a začal vytvářet velice jednoduchou aplikaci (malou zajímavostí bylo to, že celá ukázka probíhala v prostředí MacOS a IDE IntelliJ IDEA – uživatelé Eclipse byli na začátku přednášky ujištění, že se jedná o nejlepší možné řešení :-) ), která měla předvést hlavní výhody Springu:

Zajímavé je především použití SpEL, protože dovoluje velice zajímavé možnosti. Jako jeden příklad za všechny si dovolím uvést dva příklady z referenční příručky Springu (na prvním příkladě se odkazujeme na systémovou proměnou, ve druhém příkladě pak definujeme property jedné bean a SpEL nám umožní přistoupit k této property z jiné bean):


<bean id="taxCalculator" class="org.spring.samples.TaxCalculator">
<property name="defaultLocale" value="#{ systemProperties['user.region'] }"/>
<!-- other properties -->
</bean>

<bean id="numberGuess" class="org.spring.samples.NumberGuess">
<property name="randomNumber" value="#{ T(java.lang.Math).random() * 100.0 }"/>
<!-- other properties -->
</bean>

<bean id="shapeGuess" class="org.spring.samples.ShapeGuess">
<property name="initialShapeSeed" value="#{ numberGuess.randomNumber }"/>
<!-- other properties -->
</bean>


Pan Macháček poté určitě doporučoval vyzkoušet dmServer, který ačkoliv je mladý, má podle něj velkou budoucnost a stojí za to vyzkoušet jeho možnosti. Jedinou jeho nevýhodu viděl v nedůvěře velkých klientů k „neznámému“ řešení a také nutnost jiné struktury aplikace, kvůli OSGi, které staví na tzv. bundlech. Sám ovšem tvrdil, že není problém přepsat JEE aplikaci na OSGi – doporučoval pouze vytvořit vlastní OSGi repository, kvůli lepší správě bundlů. Odměnou je poté lépe čitelná aplikace, která je velice modulární.

Další zajímavostí je poté odklonění Cake Solutions (a například i samotného SpringSource) od buildovacího nástoje Maven. Přednášející to zdůvodnil tím, že Maven umí sice vše (tedy ve smyslu, že toho umí až moc), ale nedokáže „dokonale“ sestavit aplikaci. Poslední argument nechám na vašem zvážení, sám si s ním dovolím nesouhlasit. Co je tedy tím nástrojem, který nyní tyto firmy používají? Možná je to s podivem, ale Ant, respektive cake-build, který si vytvořila firma Cake Solutions (je dostupný zdarma na jejich stránkách). Cake-build dokáže spravovat závislosti a přitom zachovává „jednoduchost“ antu – určitě tedý stojí za to ho vyzkoušet.

Velkým zklamáním pak pro mě byla hlavně stále nepodporovaná injektáž konfiguračních parametrů z config.properties souboru, který v našich projektech hojně využíváme. Doufejme, že se tato možnost objeví v další verzi Springu – do té doby si musíme vystačit z řešením, které poskytl Alexander V. Zinin na fóru SpringSource (http://forum.springsource.org/showthread.php?t=55183).

Přestože se z časových důvodů na většinu věcí nedostalo, ukázka to byla velice zajímavá a v nejbližší době by mělo být k dispozici video, tudíž budete mít možnost shlédnout ji na vlastní oči (určitě uveřejníme na našem blogu).

Pro mě nejzajímavější část přednášky ovšem nastala v následující diskuzi přímo s panem Macháčkem, u které zůstalo už jen pouze pár jedinců, kteří se o tématiku zajímali poněkud více. Celá diskuze se vedla hlavně o budoucnosti Spring Frameworku i samotné Javy. Z této debaty vyplynulo, že pan Macháček věří technologiím Groovy a Grails, které odkoupil SpringSource, ale jejichž potenciál zatím moc nevyužívá.

Dále narážel také na současný stav Javy a vývoji v ní – tedy že pro to, aby začala fungovat Spring aplikace je třeba napsat spoustu kódu okolo a až poté se věnujeme tvorbě samotné aplikace. Tyto nevýhody například .NET nemá a proto je třeba se zaměřit na smazání těchto rozdílů (o což se snaží například nově představená technologie ROO – Real Object Oriented – http://blog.springsource.com/2009/05/01/roo-part-1/). Nakonec vynesl myšlenku, která mě velice překvapila a to, že by bylo vhodné se v blízké budoucnosti porozhlédnout po něčem jiném než je Spring. Tuto myšlenku ovšem nechal otevřenou, tudíž si za ni každý může domyslet co chce.

Na závěr chci poděkovat všem, kteří umožnili aby se tato přednáška uskutečnila. Více takovýchto akcí jenom přispívá k zatraktivnění vývoje v Javě a Spring Frameworku.

Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Email this to someone