Recenzje książek[RECENZJA] AngularJS – Poznaj możliwości AngularJS – B. Green, S. Seshadri

Podziel się:   Facebook   Google+   Twitter   GG   E-mail  

AngularJS_Shyam-Seshadri Brad-Green

Na nasz stół redakcyjny trafiła ostatnio pozycja: “AngularJS – Poznaj możliwości AngularJS“, autorstwa: Brad Green i Shayam Seshadri.

Postanowiliśmy się nieco bliżej przyjrzeć tej pozycji i sprawdzić czy sprawdzi się ona jako podręcznik podczas pracy nad projektem Angular-owym. Zacznijmy więc!

Już po kilku sekundach po otwarciu książki naszą uwagę przykuł nietypowy układ marginesów. Czytając kolejne strony mamy wrażenie, że ktoś chyba zapomniał ustawić poprawnych marginesów dedykowanych dla druku dwustronnego 😉 Treść jest po prostu zbyt blisko łącznika stron i trzeba się nieco nagimnastykować aby komfortowo przeczytać całą linie tekstu. Dodatkowo specyficzny rozmiar podręcznika skutecznie uniemożliwia płynne czytanie.

Nieco większy rozmiar strony i reorganizacja marginesów była by zdecydowanie zalecana.

 
 
 

Za vs Przeciw

ZALETY

– prosty język,
– wiedza podawana “w pigułce”,
– dużo przykładów,
– opis dodatkowych narzędzi,
– obszerny opis najważniejszych modułów.

WADY

– nieergonomiczny format książki,
– nieaktualna wersja frameworku,
– nieaktualne zalecenia (jQuery).

Skoncentrujmy się na zawartości podręcznika

Pierwszy rozdział, czyli wprowadzenie do AngularJS to najprawdopodobniej najlepiej napisany rozdział w całej książce 😉

Prosto, zwięźle i na temat autorzy przedstawiają ideę frameworku, na konkretnym przykładzie wyjaśniają takie pojęcia: szablony, MVC, two-way binding, wstrzykiwanie zależności, dyrektywy czy filtry.

Kolejny rozdział, jest ciekawym uzupełnieniem tego, czego nie dało się przedstawić we wstępie.

Po przeczytaniu tylko pierwszych dwóch rozdziałów, czytelnik może zacząć już pisanie pierwszej aplikacji, wykorzystując najważniejsze składowe frameworka AngularJS.

Jedyną rzeczą, do jakiej moża się doczepić czytając pierwsze rozdziały to użyta wersja frameworku. Aktualna wersja na wrzesień 2015 roku to 1.4.6, natomiast autorzy używają wersji “legacy” 1.2.2. Nowa wersja nie wprowadza co prawda rewolucyjnych zmian, ale kilka nowości czytelnika ominie, m.in. ulepszony moduł animacji, cookie, czy wzbogacona obsługa błędów w formularzach.

Zalecenia, zalecenia, zalecenia…

Autorzy w dalszej części podręcznika zalecają stosowanie funkcji $watch, do obserwowania zmian w obiekcie. Nie jest to delikatnie mówiąc najlepsze rozwiązanie, szczególnie, że w zdecydowanej większości przypadków istnieje szybsze rozwiązanie problemu reakcji na zmianę modelu – funkcje typu “setter”. Warto oczywiście wspomnieć o tym rozwiązaniu, ale stwierdzenia typu:

funkcja prawdopodobnie najczęściej używana we wszystkich zasięgach to $watch

nie spowodują wdrażania dobrych technik u początkujących programistów.

Kolejnym zaleceniem autorów, na który warto zwrócić uwagę to użycie jQuery to zarządzania drzewem DOM w jednej aplikacji z AngularJS. Jest to sytuacja dozwolona ale mocno niezalecana, m.in. dlatego, że wymusza użycie w pewnych sytuacjach funkcji $watch, co negatywnie odbija sie na wydajności aplikacji.

Od czasu, gdy w sieci zaczęła się pojawiać całą masa popularnych jQuery-owych wtyczek przepisanych na Angular-a, pojawiły się też zalecenia aby nie łączyć obu bibliotek w 1 aplikacji.

Jest jednak światełko w tunelu złych zaleceń. Autorzy dokładnie wyjaśnili na czym polega problem użycia $watch. Pozostaje mieć nadzieję, że czytelnicy odczytają to jako przestrogę przed częstym używaniem tej funkcji.

Autorzy zdecydowali się wspomnieć o dodatkowych narzędziach takich jak: Yeoman, ułatwiającego zarządzanie aplikacją AngularJS, czy Karma, pozwalające na przyspieszenie pracy nad testowaniem aplikacji.

Warto przeczytać, bo…

Znalazło się też miejsce dla biblioteki RequireJS. Szukaliśmy również integracji z Bootstrap, ale niestety bez powodzenia, czytelnik będzie musiał sam zapoznać się z AngularUI.

Niewątpliwym atutem książki jest omówienie w wyczerpujący sposób wzorca RESTful oraz modułu ngResource, służące do automatyzacji połączeń między przeglądarką a serwerem.

Autorzy poświęcają również krótki rozdział na przedstawienie tematyki bezpieczeństwa aplikacji, m.in. zagrożeń typu CSRF – Cross-site request forgery.

Dyrektywy, zostały opisane w sposób wyczerpujący. Podane przykłady pozwalają w pełni zrozumieć ich budowę, bez odwoływania się do źródeł zewnętrznych.

Nie zabrakło oczywiście odwołań do takich zagadnień jak: komunikacja pomiędzy zasięgami, usługa $location HTML5, obsługa COOKIE, moduł Sanitize itd.

Małe potknięcia zdążają się największym, ale przy okazji recenzji warto też wspomnieć o literówkach 😉

Autorzy przy okazji omawiania atrybutu “ngStyle” używają kodu: style="((dowolne wyrażenie}}", na co początkujący czytelnik może zareagować zakłopotaniem. Na szczęście późniejsze przykłady używają już poprawnej składni.

Podobne niedopatrzenie to fragment, gdzie autorzy piszą o znaku dolara przy walucie a na przykładzie widoczny jest napis “12.90 zł” 😉

Podsumowując

Książka “Poznaj możliwości AngularJS” opisuje w sposób wystarczający podstawy frameworka, umożliwiając czytelnikom napisanie swojej pierwszej średnio zaawansowanej aplikacji, bez odsyłania do źródeł zewnętrznych.

Pomimo nieco nieaktualnych już zaleceń, jak integracja z jQuery, zawiera informacje o ciekawych narzędziach i bibliotekach pozwalających usprawnić pracę nad aplikacją Angular-ową.

Komu można polecić książkę: przede wszystkim początkującym Angular-owcom, którzy chcą poznać możliwości frameworka, ale jednocześnie nie chcą się skupiać na nowinkach czy niuansach.

Dla zaawansowanych czytelników, polecamy inne, bardziej rozbudowane i aktualne pozycje.

Powiązane artykuły

Kurs css

  • Kurs CSS dla niecierpliwych [cz 1/2]

    Co to jest CSS, po co go używać, jak go używać.. CSS - stylizowanie różnych elementów HTML, inaczej mówiąc: wizualizowanie/nadawanie odpowiedniego wyglądu strony www. Zaczynając kurs…

  • Kurs CSS dla niecierpliwych [cz 2/2]

    Kontynuacja przyspieszonego kursu dla niecierpliwych. Część 1/2 - Kurs CSS dla niecierpliwych 1/2 Zakładam, że znasz lub zapoznałeś/aś się już wstępnie z podstawami HTML, wiesz do czego…