Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i Eclipse.

Prawie każda książka po którą mamy okazję sięgnąć pozostawia po sobie pewne, trudne do zatarcia skojarzenie, czy to z miejscem, czy też jakąś specyficzną okolicznością. I dzieje się tak niezależnie od tego, czy jest to dzieło najnowsze Jerzego Pilcha, czy też co bardziej prawdopodobne ;) podręcznik do Spring‘a.
Książka, którą chciałbym tutaj przedstawić kojarzyła mi się będzie niezmiennie już chyba z pociągiem InterCity relacji Kraków-Warszawa, Warszawa-Kraków. A to dlatego, że w przeciągu ostatnich miesięcy miałem okazje, a co za tym idzie niezmierną przyjemność, coweekendowego rozkoszowania się podróżami taborem Polskich Kolei Państwowych. Moją i tak ogromną radość potęgowała dodatkowo okoliczność posiadania miejscówki dająca mi z niczym nieporównywalną satysfakcję łypania z pobłażliwością na osoby podróżujące bez takowej. Niekiedy niestety zdarzało się, z różnych ZALEŻNYCH ode mnie względów, że to nie ja łypałem, ale łypany przez innych byłem. Lecz o tych pięknych chwilach spędzonych w najbliższym sąsiedztwie toalety wolałbym jak najszybciej zapomnieć. Dla dopełnienia wspomnę jeszcze jedynie, że przy okazji udało mi się na własne oczy zobaczyć najsłynniejszy dworzec w Polsce, a mianowicie (po co ja to mówię – przecież pewnie wiecie) Włoszczowa Płn. Zdjęć, czy też innych nagrań, na potwierdzenie swojej prawdomówności niestety nie posiadam, co nie ukrywam niezmiernie mnie smuci.
Podczas tych podróży globtroterskich pociągami pośpiesznymi-opóźnionymi wiernym towarzyszem pozostawała mi zawsze książka. Ostatnim czasem w ręce wpadła mi, nie całkiem z resztą przypadkiem, publikacja Anila Hemrajaniego pod tytułem Java. Tworzenie aplikacji sieciowych za pomocą Springa, Hibernate i Eclipse. Nie ukrywam, że do książki od początku podchodziłem z pewnym uzasadnionym sceptycyzmem, ale także z nutką nadziei.
Długo nie mogłem zrozumieć w jaki sposób te trzy wspomniane technologie można skompresować w publikacji liczącej sobie zaledwie nieco ponad 300 stron. W zrozumieniu tego faktu dodatkowo przeszkadzała mi okoliczność, że dni zaledwie kilka temu skończyłem czytać książkę na temat Spring‘a zawierającą tychże stron prawie 800. A i tutaj nie ominęło mnie wrażenie, że publikacja ta miejscami jest zbiorem myśli niedokończonych mających w czytelniku jedynie wzbudzić ewentualne późniejsze zainteresowanie tematem.
Nie znajdując ciągle odpowiedzi na stawiane sobie pytania, postanowiłem w końcu mimo chronicznego braku czasu dać książce Hemrajaniego szanse przekonania mnie o swej wartości. A, że w pociągu mimo braku czasu, czasu jest zawsze więcej, stając przed wyborem prowadzenia dyskusji na temat aktualnej sytuacji politycznej w kraju, a przeczytaniem książki Hemrajaniego – wybrałem z opcji tych ostatnią.
Już po zapoznaniu się z kilkoma pierwszymi stronami wiedziałem, że książka ta przeznaczona jest raczej dla osób przygodę swoją z Javą dopiero rozpoczynających. Kilka kolejnych stron w tym przeświadczeniu jedynie mnie umocniło. Posiadając już tą wiedzę mogłem się wreszcie rozluźnić i nie martwić za bardzo, że zbyt wiele nie zrozumiem.
Publikacja ta podzielona jest na 12 krótkich rozdziałów. Motywem przewodnim przewijającym się w tle jest proces wytwarzania aplikacji sieciowej służącej raportowaniu godzin pracy. Temat przykładowej aplikacji wydaje się tutaj prawidłowo dobrany do celów edukacyjnych. Pomimo, że książkę czytało mi się dosyć przyjemnie, to w lekturze bardzo zirytowało mnie kilka kwestii, o których nie mógłbym nie wspomnieć.
Zacznę już od samego tytułu. Należy zauważyć, że w oryginalnym tytule książki stoi Agile Java Development (…). Z nieznanych mi przyczyn podczas tłumaczenia słówko Agile się zgubiło. Jest to o tyle istotne, że w książce poruszane są z dosyć dużą regularnością elementy tejże metodologii. Autor stara się nam zareklamować Agile jako technikę wytwarzania aplikacji, którą warto się zainteresować. Niestety trudno oprzeć się wrażeniu, że ma to charakter zbyt powierzchowny, by nas o tym przekonać. Głównie stosowana argumentacja nie była dla mnie przekonująca ze względu na fakt wielokrotnego poruszania tych samych kwestii. Trudno mi było kolejny raz czytać, że należy pisać testy przed kodem właściwej klasy, gdy dokładnie to samo czytałem kilka stron wcześniej. Mam wrażenie, że autor zaprezentował tutaj podejście zwane potocznie nauką przez powtarzanie.
Niestety powtórzenia w tej książce są prawdziwą plagą i dodatkowo zmniejszają jej realną wartość. Bezcelowym byłoby dokładne zliczanie, ale niektóre ilustracje w książce pojawiły się przynajmniej kilkanaście razy. Metodologia Ctrl+C-Ctrl+V dotknęła także innych aspektów tej publikacji. Między innymi na początku każdego rozdziału jest omówiona lista zagadnień poruszanych w rozdziale, by na jego końcu znaleźć dokładnie tą samą listę podsumowującą, co zostało w rozdziale opisane. Do całkowitego rozbawienia doprowadził mnie fakt załączenia trzech zrzutów ekranów porównujących wygląd środowiska Eclipse pod różnymi systemami operacyjnymi. Spowodowało to powstanie we mnie odczucia, że autor nie miał nam wiele do przekazania. Gdybyśmy spróbowali usunąć z publikacji powtarzający się materiał nie pozostałoby wiele stron na merytoryczne aspekty.
Marnotrastwo przestrzeni wydaje się być podwójnie irytujące kiedy weźmiemy pod uwagę, że rozdziały dotyczące Spring‘a i Hibernate są relatywnie krótkie, co nie daje możliwości przekazania czytelnikowi nawet podstawowej wiedzy na temat tych technologii. Mimo, że nie miałem problemu ze zrozumieniem omówionych aspektów, to z pełnym przekonaniem jestem w stanie powiedzieć, że osoba nie mająca wcześniej do czynienia z tymi technologiami nie wyniesie ze wspomnianych rozdziałów wiele wiedzy, czy też przekonania o zasadności stosowania opisywanych technik. Z drugiej strony czytelnik posiadający już jakąś wiedzę nie będzie w stanie dowiedzieć się wiele więcej.
Udało mi się także autora złapać na małym kłamstwie. Wielokrotnie autor chwali się, że opisał w rozdziale coś, co tak naprawdę tam się finalnie nie znalazło.
Rozdział, który z pewnością mogę polecić to rozdział 8. Fenomen środowiska Eclipse. Eclipse dla wielu z nas jest podstawowym narzędziem pracy. Niestety w swojej pracy codziennie obserwuję u developerów podstawowe braki w znajomości jego możliwości oraz obsługi. I nie jest to niestety jedynie domena początkujących programistów. Autor zwraca tutaj uwagę na istotę umiejętności efektywnego korzystania z IDE oraz takie aspekty, jak korzystanie ze skrótów klawiaturowych podczas pracy. I ten właśnie rozdział, który wielu z czytelników najprawdopodobniej ominie, polecam z całości książki najbardziej.
Starałem się znaleźć pozytywne aspekty tej publikacji i wydaje mi się, że to mi się udało. O ile książka nie wprowadza w żadną z technologii w stopniu chociażby dostatecznym, to daje ogólny pogląd na narzędzia, jakie często wykorzystywane są podczas wytwarzania aplikacji sieciowych. Mimo całej ubogości tej książki nie jest to najgorsze miejsce, aby zacząć swoją przygodę z korporacyjnymi aplikacjami. Należy jednak patrzeć z przymrużeniem oka nie tyle na tezy stawiane przez autora, co na ich uzasadnienie.








September 22nd, 2007 at 23:16
Zgadzam się z autorem recenzji. Najbardziej denerwujące w niej jest właśnie opisywanie na wstępie czym będziemy zajmować się w danym rozdziale a kilka strona dalej robić podsumowanie czego właśnie się nauczyliśmy. Jedyne pytanie jakie wówczas mogłem zadać to: “Już?! przerobiliśmy to?!”
January 27th, 2008 at 21:48
Cześć,
Zgadzam się z autorem recenzji. Sam kupiłem książkę z ciekawości i po przeczytaniu jej mogę powiedzieć tylko że jest bardzo przeciętna. Autor spróbował na 300 stronach upchnąć podstawowe informacje o springu, hibernate i IDE i to mu się udało. Jednak z drugiej strony za dużo pociął i w sumie nic nie powiedział :( Szkoda bo pomysł był dobry.
ps. szczególnie ładnie opowiada o cyklicznej metodologii wytwarzania softu. Za to duży plus.