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
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.
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.
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.
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.