Czyli ta druga częśc w której zastanawiam się po co, komu i dlaczego jest Grails.
Jak wspomniałem wcześniej Grails jest framework’iem wzorowanym na Ruby on Rails, jako bazę wykorzystującym język Groovy. Po swoim poprzedniku przejął podstawowe zasady:
- DRY (Don’t Repeat Yourself – Nie powtarzaj się)
- Convention Over Configuration (Konwencja ponad konfigurację)
Co stanowi o dodatkowej sile Grails’a to wykorzystanie dla popularnych i mających bardzo dobrą opinię bibliotek Javovych: Spring Framework, Hibernate, Sitemesh. Dla użytkownika końcowego mogą byc one niewidoczne, ukryte za interjefsami napisanymi w Groovy, ułatwiającymi ich używanie i redukującymi ilośc potrzebnej kofiguracji (to jest właśnie siła wspomnianej wcześniej zasady!). W każdym momencie możliwe jest jednak pełne ich wykorzystanie oraz samodzielna konfiguracja.
W skrócie więc Grails = elastycznośc Groovy + moc bibliotek Javy
Jak to wygląda w praktyce? Prosty przykład, wydajemy polecenia:
grails create-app
grails create-domain-class [nazwaKlasy] , edytujemy stworzony plik .groovy dodając odpowiednie pola
grails generate-all
grails run-app
… i możemy już w przeglądarce uruchomic aplikację, ze stronkami do dodawania nowych instancji dla stworzonej klasy, edycji i usuwania. Stworzone mamy kontrolery wykorzystujące Spring’a, mapowania Hibernate’owe, strony GSP (podobne do JSP), dane zapisywane są też już do bazy i parę jeszcze użytecznych plików. Ciekawe ile zajęłoby zrobiebienie takiej funkcjonalności w Javie…
Co dodatkowo stanowi o sile Grails jest system plugin’ów. Sprawnie działająca społecznośc skupiona wokół projektu tworzy coraz to nowe pluginy (aktualnie około 40) pozwalające na współpracę m.in. z Flex’em, JSF, GWT, Acegi, OpenLaszlo, Yahoo UI, i wieloma innymi technologiami.
Z punktu widzenia programisty szybkośc tworzenie aplikacji wzrasta więc niesamowicie a dodatkowo to wciąż jest Java (no i troche Groovy). Kolejna rewolucja? Znowu tak, o tym projekcie jest już teraz głośno, będzie jeszcze bardziej.
W następnej części cyklu postaram się przedstawic jakie plusy może miec stosowanie Groovy / Grails w tzw. prawdziwym świecie czyli dlaczego klienci biznesowi mogą byc tym wszystkim zainteresowani.
[...] Na początek warto zastanowić się po co właściwie nam Grails + Flex. Można przecież zbudować aplikację internetową w Grails od początku do końca, podobnie zresztą jak we Flex. Użycie kombinacji obu technologii ma sens w przypadku, gdy robimy RIA, ale implementację logiki biznesowej chcielibyśmy pozostawić na serwerze, a także, dodatkowo, chcemy to wszystko wykonać w możliwie dobrych technologiach, które całą sprawę nam ułatwią, a nie utrudnią i zapewnią, przy okazji, realizację kilku wymagań niefunkcjonalnych (jak choćby duża przenośność), na których na pewno nam zależy. Grails + Flex = dokładnie to. Flex jest świetną technologią, która oferuje nam pełną potęgę graficzną Flash’a, ale w formie przyjaznej programiście (a nie grafikowi). Grails natomiast pozwala wykorzystać w całości moc platformy Java EE (czyli również jej bogactwo bibliotek, framework’ów oraz innych narzędzi), czyniąc jednak programowanie łatwiejszym i szybszym dzięki takim cechom jak choćby zasady DRY (Don’t Repeat Yourself – Nie powtarzaj się) i Convention Over Configuration (Konwencja ponad konfigurację), język programowania Groovy czy technologie Spring i Hibernate podane “na tacy”, bez żadnego dodatkowego wkładu pracy w konfigurację itp. Więcej na ten temat przeczytać można we wcześniejszym wpisie Pawła. [...]