2010. május 28., péntek

Spring Roo

A Spring Roo 1.0-ás verziója a bemutatóelőadások (melyeket egyébként a Roo project leadje tartott) végignézése után rögtön elnyerte tetszésünket. Ezen bejegyzésben felsorolt előnyei és szolgáltatásai miatt döntöttünk úgy, hogy szerepet kap egyik projektünk implementációjában is.

Mi is a Roo? Egy kódgeneráló RAD tool, mely shell utasítások hatására (passzív kódgenerálás) és azok nélkül is (aktív kódgenerálás) képes Java kódot generálni. Alapvetően az olyan általános teendőket veszi le a vállunkról, mint a getter-setter metódusok írása, a toString-ek karbantartása, az entity-k map-olása, valamint a hozzájuk kapcsolódó finder-ek implementálása. A kódgeneráláson túl (a lehetőségeinek megfelelően) karbantartja a pom.xml-t is (mivel Maven alapú az eszköz), valamint képes az általa karban tartott entity-khez admin felületet generálni.

A Roo 1.0.x előnyei, szolgáltatásai:
- Roo shell parancskiegészítéssel, bő beszédű hintinggel
- project keret generálás, build leíróval (Maven alapú)
- entity-k és azok tesztjeinek generálása/karbantartása (Hibernate, Eclipselink, OpenJPA támogatással)
- AspectJ alapú kódszegmentálás
- finder generálás az entity-khez
- scaffolding (Spring MVC alapokon) a Roo által menedzselt entity-k alapján (Selenium tesztekkel)
- plugin alapú bővíthetőség
- Eclipse plugin a Roo shell helybeli használatához

A fenti néhány feature bár kevésnek tűnhet, mégis jelentős potenciált hordoz. Hasznos lehet egy kezdődő project alapjainak lerakásához, még akkor is ha nem tervezzük minden lehetőségét kihasználni. Nem kell félni attól sem, hogy a projectünk túlontúl Roo-s keretek közé fog szorulni, ugyanis a Roo néhány egyszerű lépéssel, pár perc alatt, nyom nélkül eltávolítható.

Az eddig tapasztalt egyetlen hiányossa, hogy nem támogatja a DAO patternen alapuló perzisztenciát. Ez egy szándékos döntés volt a Roo megalkotása során, melyet a dokumentációban bővebben is kifejtenek a pattern előnyei felsorolásával, és a Roo azokra adott válaszaival. Ennek ellenére nekem továbbra is hiányérzetem van e miatt.

Érdemes lesz figyelemmel kisérni a Roo további fejlődését, hiszen épp a napokban jelentették be az 1.1.0.M1-es verziót, mely ugyan még nem egy végleges verzió, mégis számos figyelemre méltó újítást tartalmaz. Ezek közül néhány a teljesség igénye nélkül:
- GWT (2.1) támogatás
- az entity-k automatikus indexelés Apache Solr-al (az Apache Solr egy Lucene alapú ESP)
- JPA 2 support

A mostani milestone kapcsán íródott SpringSource-os blogbejegyzés előre vetített pár egyéb érdekes és hasznos újítást is az 1.1.0-ás végleges releasere vonatkozóan:
- inkrementális DB reverse engineering
- UI támogatni fogja a Solr képességeket
- Ant/Ivy alapú build

Összességében mindenkinek csak ajánlani tudom a Roo-t, és érdemes lesz rá odafigyelni, mert egy egész széleskörű kódgeneráló eszközzé vállhat.

Zs.Sz.

Nincsenek megjegyzések:

Megjegyzés küldése