W dzisiejszym poście chciałbym przedstawić swoje wrażenia po przeczytaniu Świat poza jQuery Biblioteki: AngularJS, KnockoutJS, BackboneJS autorstwa Karola Rogowskiego. Książka została wydana przez wydawnictwo PWN.
jQuery jest bezsprzecznie jednym z najczęściej wykorzystywanych bibliotek JavaScriptu. Jednak od jakiegoś czasu można zauważyć wzrost popularności innych frameworków. Trudno znaleźć dziś ofertę pracy we front-endzie, która nie wymagałaby znajomości np. Angulara. Nie ma się co dziwić, te frameworki często okazują się bardzo pomocne.
Technologie sieciowe rozwijają się bardzo szybko. Strony internetowe już dawno przestały być statycznymi wizytówkami, a stały się pełnoprawnymi aplikacjami, mogącymi spokojnie konkurować z tymi tworzonymi dla środowiska desktopowego. Oczywiście, wraz ze wzrostem złożoności stron internetowych, wzrósł czas pracy nad nimi oraz poziom wymaganych do tej pracy umiejętności. I tu wracam do wspomnianych już frameworków. Dzięki nim, tworzenie aplikacji internetowych, staje się dużo prostsze i mniej czasochłonne. Ale nie oznacza to, że stało się proste. Wciąż wymagany jest dość konkretny poziom umiejętności. Kiedy doda się do tego jeszcze zarządzanie projektem, automatyzacje zadań, testowania itd. Okazuje się że wciąż wymagany jest dość duży pakiet umiejętności. Jak to ugryźć? Od czego zacząć? Nie ma na to pytanie jednej dobrej odpowiedzi, dróg jest wiele. Jedną z nich jest na pewno książka Świat poza jQuery Biblioteki: AngularJS, KnockoutJS, BackboneJS.
Dla kogo przeznaczona jest książka Świat poza jQuery Biblioteki: AngularJS, KnockoutJS, BackboneJS
Zacznę od najważniejszego. Kto powinien przeczytać tę książkę? Zdecydowanie nie jest to lektura dla początkujących. Sam autor uczciwie przyznaje to już na wstępie. Czy oznacza, to że powinieneś / powinnaś obawiać się zakupu tej książki i z góry założyć, że Ci się nie przyda? Nic bardziej mylnego.
Tak naprawdę, w przeciwieństwie do innych publikacji na polskim rynku, traktujących o temacie SPA (Single Page Application), recenzowana przeze mnie jest jedną z tych o niższym progu wejściowym. Autor przez cały czas stara się tłumaczyć wszystko bardzo jasno, i zdradzę wam, że bardzo dobrze mu to wychodzi. Nie zmienia to jednak faktu, że trzeba posiadać już pewną wiedzę na temat JavaScriptu. Myślę, że dobrym wyznacznikiem, na to, czy jesteś gotowy / gotowa aby sięgnąć po tę książkę jest to jak dobrze idzie Ci przyswajanie przykładów z tego bloga. Jeśli nie masz problemu aby zrozumieć co robię w moich projektach, to i z tą książka nie powinno być problemów. Chociaż nie będę ukrywał, momentami wchodzi na nieco wyższy poziom 🙂
Nie powinna to być raczej pierwsza pozycja o programowaniu w środowisku webowym, po którą sięgasz. Stawiałbym raczej na drugą lub trzecią 🙂 Z drugiej strony, stawianie poprzeczki wysoko często daje bardzo dobre efekty. Trzeba tylko pamiętać aby nasze cele były realistyczne, bo możemy się zbyt wcześnie zniechęcić.
Jeśli natomiast z JavaScriptem masz już co nieco wspólnego i szukasz nowych sposobów aby poszerzyć swoje horyzonty, ta książka jest dla Ciebie. Szczególnie jeśli nie jesteś do końca pewny w którym kierunku powinieneś iść dalej. Jest duża szansa, że odpowiedź znajdziesz w tej publikacji.
Reasumując, według mnie jest to świetna książka dla osób średnio zaawansowanych. Początkujący też mogą spróbować po nią sięgnąć, ale muszą być gotowi na ciężką prace i uzupełnianie na potrzeby książki wiedzy z innych źródeł. Bardziej zaawansowani programiści JavaScriptu, mogą uznać przykłady za zbyt łatwe, ale mogą też znaleźć tu informacje na temat frameworku, z którym jeszcze nie pracowali, co też przyniesie korzyści.
O czym jest książka Świat poza jQuery Biblioteki: AngularJS, KnockoutJS, BackboneJS
Tytuł książki jest trochę mylący. Można odczytać go w taki sposób, że zostaną przedstawione alternatywy biblioteki jQuery. Nie chodzi jednak o świat JavaScriptu bez jQuery, a o świat JavaScriptu gdzie biblioteka ta koegzystuje razem z innymi rozwiązaniami. W przykładach książki nie raz pojawia się jQuery, jednak gwiazdami są zdecydowanie inne rozwiązania.
W książce znajdziemy opis frameworków Backbone.js, Angular.js oraz Knockout.js. Do tego, mamy jeszcze opis bardzo przydatnej biblioteki Underscore.js. Autor opisuje każde rozwiązanie od samych podstaw. Na przykładach tłumaczy jak z korzystać z tych technologii aby zbudować pełną aplikację internetową. Książka omawia podstawy na tyle dobrze, że bazując na informacjach zawartych w poszczególnych rozdziałach można bez trudu zbudować pełnoprawne aplikacje.
Nieco inaczej potraktowana jest biblioteka Underscore.js. Tylko w jej przypadku, autor nie buduje większej aplikacji a jedynie małe, wyrwane z kontekstu, przykłady. Biorąc pod uwagę naturę tej technologii, jest to całkiem zrozumiałe. Underscore to raczej uzupełnienie innych rozwiązań, niż sposób na programowanie sam w sobie.
Zawartość książki
Książka podzielona jest na cztery części. Każda z nich traktuje o innej technologii.
- Underscore.js – W tej części, autor opisuje rozwiązanie underscore. Jest to nie tyle framework, co biblioteka dodająca bardzo wiele przydatnych funkcji pomagających w takich sprawach jak operacje na kolekcjach, tablicach, obiektach. To coś w rodzaju scyzoryka dla programisty JavaScript 🙂 W tej części książki autor przedstawia również stronę jsFiddle, na której można wypróbować przykłady.
- Backbone.js – Kolejny fragemtn opisuje pierwszy framework. Bakcbone służy do budowania aplikacji internetowych z użyciem architektury RESTful oraz JSONa. Oprócz przedstawienia jak używać frameworka, autor opisuje też edytor sublimetext idealnie nadający się do pracy z kodem.
- Angular.js – Ta część książki jest najobszerniejsza. W końcu Angular jest jednym z najpopularniejszych frameworków do tworzenia aplikacji internetowych. Autor opisuje dużo aspektów tego rozwiązania, wszystko zilustrowane bogatymi przykładami.
- Knockout.js – Na koniec otrzymujemy trochę inny framework. W przeciwieństwie do poprzednich nie służy do budowania aplikacji o architekturze MVC a do takich o MVVM. Co to oznacza? Odpowiedź można znaleźć w ksiażce 🙂
Moja ocena
Zacznę od jakości wydania. Książka ma miękką oprawę, kolorową grafikę na okładce i czarno białe wnętrze. Wydanie wydaje się być przyzwoite. Jedną rzeczą na którą zwróciłem uwagę, to to jak dobrej jakości jest druk. Tak samo jak w HTML5 i CSS3 definicja nowoczescności, atrament nie ściera się a litery są bardzo ostre co powoduje, że książkę czyta się bardzo przyjemnie.
Przyszła kolej na ocenę treści. Może zacznę od minusów. W książce jest dość dużo literówek, szczególnie widoczne jest to w podpisach pod ilustracjami i w komentarzach w kodzie. Wygląda to tak, jakby elementy te były omijane przez korektę. Wszystko to nie wpływa jednak na przyjemność czytania. Zresztą nie oszukujmy się, takie rzeczy zdarzają się w każdym wydawnictwie. Lepsze literówki w tekście niż w kodzie… Ale o tym za chwilę.
Drugą rzeczą, i to pewnie jest moje czepialstwo, jest sposób używania dyrektyw Angulara przez autora. W przykładach mamy np. ng-click zamiast data-ng-click. Obie wersje działają, ale wg specyfikacji ta druga wersja jest poprawna i jest uznana za valid html. To akurat drobnostka, mało ważna dla ludzi dopiero zaczynających przygodę z angularem, ale z drugiej strony, warto od początku kształtować dobre nawyki.
Co do zalet, myślę, że jedną z najważniejszych jest tematyka książki. Jest bardzo aktualna. Kwestią czasu jest, gdy opisane rozwiązania staną się niepisanym standardem technologii webowych. Tak naprawdę to już prawie tak jest. Dlatego, każdy kto poważnie myśli o programowaniu w JavaScripcie, powinien jak najszybciej uzupełnić wachlarz swoich umiejętności o te technologie. Ta książka jest idealnym ku temu sposobem.
Kolejna zaleta to przykłady podane w książce. Stanowią one sporą część książki i świetnie ilustrują działanie omawianych funkcji. Mało tego, czasem przykładowy kod jest tym co otwiera nowe zagadnienie, a autor zachęca czytelnika, aby najpierw spróbował sam zrozumieć co się dzieje, a dopiero później kontynuował czytanie. Takie rady podawane są dość często. To świetne praktyki uczenia się i chyba nie muszę pisać, że jestem ich ogromnym zwolennikiem. Ostatnia sprawa, autor zarzeka się, że każdy fragment kodu został przez niego uruchomiony i sprawdzony pod kątem działania. Nie sprawdzałem tego osobiście, ale studiowałem wszystkie przykłady dość dokładnie i wierzę autorowi na słowo 🙂 W książce o takiej tematyce, działający kod to ogromnie ważna sprawa.
Oprócz dobrych praktyk uczenia się, autor w każdej z opisanych technologii podaje nam dobre praktyki programowania w danym frameworku (Nie licząc tych nieszczęsnych dyrektyw Angulara, które i tak są tylko kosmetyką). Takie rzeczy jak organizacja kodu, zachowanie poprawnej architektury, wszystko to jest podkreślane w wielu miejscach. Do tego dorzućmy jeszcze podpowiedzi co do narzędzi, których warto używać i mamy książkę naładowaną po brzegi przydatnymi informacjami.
Wszystko to sprawia, że książka jest bardzo „życiowa”. Praktyczne podejście do poznania nowych frameworków może dać czytelnikowi bardzo wiele dobrego. Jestem pewny, że dokładne przestudiowanie książki oraz odpalenie kodu (i trochę zabawy z nim), przyniesie uczącemu dużo korzyści. Ja sam na pewno wrócę do przykładów opisujących frameworki, których nie znam. Kto wie, może zaowocuje to jakimś wpisem na blogu 🙂
TL;DR
Świat poza jQuery Biblioteki: AngularJS, KnockoutJS, BackboneJS to dobra książka i świetna pomoc naukowa podczas poznawania tytułowych technologii. Polecam. Kupujcie 🙂
Jeżeli podobała Ci się ta recenzja daj znać w komentarzach, chętnie poznam wasze opinie. Zachęcam również do odwiedzenia mojej strony na facebooku. Jest ona aktualizowana częściej niż sam blog, więc warto ją polubić aby być na bieżąco.