20 września 2009

"Grails in Action" w akcji i moje pierwsze wrażenia

Jeśli poprzednie książki o Grails (patrz recenzje Book review: Grails 1.1 Web Application Development, Book review: The Definitive Guide to Grails, Second Edition, Book review: Beginning Groovy and Grails: From Novice to Professional) zrobiły na mnie jakiekolwiek wrażenie, to Grails in Action z Manning pozostawi takie jedno, nieodparte, że jedynym słusznym sposobem na poznanie dowolnej technologii jest właśnie...czytanie książek. Nic to, że ich czytanie wymaga dużej cierpliwości i mnie każdorazowo rusza po rozdziale, bądź dwóch, więc czytanie robię na wyrywki, ale to, co uda mi się z nich wyciągnąć jest po prostu warte swojej ceny. Paradoksalnie, frustrujące w tym wszystkim jest to, że ów "strumień książkowy" z książkami do przeczytania nie ma końca. Aktualnie jestem zaangażowany w projekt SOA (wybaczcie użycie tego akronimu, ale to faktycznie jest przykład typowego projektu integracji usług, która idealnie pasuje do niego) z zabawkami typu IBM WebSphere Process Server i IBM WebSphere Business Services Fabric, gdzie króluje SCA, SDO, WS-BPEL z SOAP/JMS i dynamicznym wyszukiwaniem usług, więc kiedy przychodzę z pracy wkraczam w całkowicie odmienny świat Grails. Całkowicie niekomercyjny, pełen rozwiązań z bodaj wszystkich dziedziń świata projektów otwartych związanych z Java EE. Czytania jest co nie miara, ale pozostaje uczucie niedosytu braku wykorzystania tej wiedzy w praktyce - oczywiście tworząc nowy serwis Web 2.0. Szczęśliwie Grzesiek Duda & Co nie zasypiają gruszek w popiele i udało im się wkroczyć na ścieżkę ciągłych udoskonaleń, nowych wydań i wyzwań wokół serwisu Developers World. Wygląd zupełnie powalony, ale przecież nie o to w tym chodzi (im na pewno nie :)). Chodzi o dobrą zabawę tworząc ciekawy serwis, a jeśli dzieje się to przy akompaniamencie Grails i w dobrej wierze zaoferowania czegoś ciekawego (oby i nowatorskiego), to tym lepiej.

Wracając do mojej czytelniczej działalności, to mam wrażenie, że przy takim podejściu specjalizacja jest nieuchronna. Ostatnio przytrafiło mi się czytać wyłącznie książki o Grails. Za sobą mam 3, a w trakcie jest kolejna. Zabrało mi to circa dobre 1-2 miesiące. Gdybym chciał przetestować wszystkie te cudeńka grailsowe zabrałoby mi to kolejne miesiące. Innymi słowy, mam wrażenie, że taka seria czytelnicza może sprawić, że wiedza wzrośnie w tempie wykładniczym, ale tylko poparta praktyką będzie faktycznie użyteczna. Machać rękoma każdy potrafi, ale niewiele trzeba, aby rozpoznać semi-praktyka w tłumie. Zdaje się, że znowu wpadłem w pułapkę perfekcjonizmu (o której wciąż wspomina moja żona używając bardziej dobitnego terminu "odpał". A może to był "odchył"?!). Tak czy owak dobrze jest nie przesadzać i lektura dobra rzecz, aczkolwiek bez przesady. Warto poczytać i warto potrenować nabytą wiedzę w praktyce, ale również warto zaznać całkowicie odmiennych wrażeń zarzucając komputer i znaleźć czas, aby sobie wszystko poukładać. Po wakacjach, gdzie czasu miałem co nie miara, zauważyłem, że warto.

A co nowego w "Grails in Action" (GiA)? Miałem wrażenie, że poprzednie książki nie dadzą mi już cieszyć się nową wiedzą o Grails, bo wszystko już było powiedziane. Nie mogłem bardziej się mylić. Każdorazowo, kiedy czytam książkę, zaznaczam interesujące fragmenty do zbadania, zapamiętania, czy po proste warte ponownej uwagi. Jeśli w poprzednich książkach tych fragmentów było, powiedzmy, 30%, to w przypadku GiA będzie tego coś koło 50%! Panowie, Glen Smith i Peter Ledbrook dali nieźle popalić. Nie tylko, że przedstawiają temat dogłębnie, ale przede wszystkim praktycznie. Znajdziemy wiele przykładów w postaci testów jednostkowych i integracyjnych (są również funkcjonalne, ale one jedynie podczas przedstawiania odpowiednich wtyczek Grails). Do tej pory udało mi się dotrwać do części 4-tej "Advanced Grails" i zachodzę w głowę, co jeszcze mogę się dowiedzieć. Tyle już zostało opisane, a tu jeszcze ta ostatnia część. Formuła książki przedstawia się w ten sposób, że panowie przedstawiają daną problematykę, aby ją później rozwiązać dostępnymi wtyczkami Grails i po dywagacjach, które lepsze/gorsze, podsumować ją pewnym planem działania przy rozwiązywaniu tematu z pomocą Grails. Nie raz, nie dwa, znajdziemy tam informacje wykraczające poza obszar samego Grails, więc wszyscy zainteresowani tworzeniem oprogramowania webowego, bez względu na język/technologię, mogliby znaleźć coś dla siebie. Pewnie trochę wyolbrzymiam to oderwanie od technologii, ale Ci z obszaru Javy i okolic już na pewno. Są rozdziały, które czyta się bardzo przyjemnie, ale są i takie, które ciągną się godzinami. Takim rozdziałem był rozdział poświęcony tym wszystkim cechom dobrego serwisu Web 2.0 (rozdział 8 "Using plugins: adding Web 2.0 in 60 minutes"). Jak sobie o tym pomyślę teraz, to nie był taki zły, ale jakoś nie szedł mi płynnie, jak inne. Jedno, co pozostało mi w głowie po nim, to nauczyć się jQuery. Podobno to taki javascriptowy killer, jeśli chodzi o dodawanie bajerów ajaxowych do aplikacji. Tak przy okazji, to dobrze się składa, bo w kolejce do przeczytania leżą książki o JavaScripcie i jQuery, więc tylko czekać, aż się za nie zabiorę. Zdecydowanie za mało u mnie wiedzy z obszarów Script.acolo.us, Prototype, czy YUI. Szczęśliwie, z Grails nie można się tego nie nauczyć. Po prostu, tworzenie aplikacji Grails to skorzystanie z domyślnej biblioteki ajaksowej w Grails - Prototype, a wskazanie na inne to kwestia niewielkiej zmiany w konfiguracji. Grails, jak nikt inny, pozwala na delikatne wejście w temat ze swoimi wtyczkami. To jest jedna z tych cech Grails, które mnie wciąż zdumiewają - uczę się Grails, a przy okazji wszystkiego wokół. Przecież Grails to zlepek wszystkich tych technologii/projektów, które do tej pory musiałem samodzielnie, tak misternie składać, więc skąd to zdumienie?! Może to Groovy, który znosi ten cały bagaż Javy ze mnie?! Na razie nie było żadnych poważniejszych projektów z Grails, więc niewiele praktyki, ale z tego, co słychać wszyscy mówią o nim w samych superlatywach. Chyba dałem się zwieść :)

Wracam do lektury GiA. Niedługo recenzja i upragniony powrót do Nauczyciela. W końcu rozpoczął się nowy rok szkolny i dzieciaki potrzebują trochę frajdy z nauki, nieprawdaż?

p.s. Mamy już jdn.pl, java.pl i wspomniany dworld.pl. Sądzę, że jest jeszcze miejsce dla kolejnego tworu ala wspomniane serwisy, ale oferującego coś faktycznie odświeżającego dla naszej społeczności javowej i zbudowanego na bazie Grails. Poszukuję grafika, który wie, co to Web 2.0 i zna się na tych wszystkich pastelowych kolorach, zaokrągleniach, śmiesznych rysunkach i dużych czcionkach. Jeśli ktoś mógłby się podzielić ze mną namiarami na takowego, będę dozgonnie zobowiązany. Czas zabrać się za urzeczywistnienie pomysłu i sprawdzenie swoich grailsowych umiejętności w boju. Każdy może, więc i ja spróbuję. Kiedy przyjdzie do programowania na pewno zaproszę wszystkich zainteresowanych do udziału w przedsięwzięciu.