Książka "Angular Development with TypeScript"

Recenzja książki „Angular Development with TypeScript”

Nadrabiając zaległości na blogu wracam do konwencji recenzji kolejnych książek jako propozycji uzupełniania i/lub rozwijania wiedzy. W kwietniu w ramach firmowej Gildii Software Craftsmanship zajęliśmy się implementacją aplikacji w Angular5, konkretnie części front-endowej sklepu internetowego z użyciem API platformy Hybris (żeby nie robić całego projektu). Jako punkt wyjściowy do zdobywania wiedzy posłużyła mi książka „Angular Development with Typescript„, druga edycja, kupiona w modelu MEAP.

Zaczynając trochę od końca wyjaśnię czym jest model MEAP (ang. MEAP – Manning Early Access Program). Problem z książkami opisującymi najnowsze technologie, jak np. Angular5 jest taki, że zanim przejdą klasyczny cykl wydawniczy, to już są nieaktualne :-). Model zakłada że kupując wersje elektroniczną dostajemy dostęp do książki, lub jej kolejnej edycji, w czasie gdy jest jeszcze tworzona lub uaktualniana. Część rozdziałów ma adnotacje „trwają prace” i kolejne aktualizacje są nam sukcesywnie przesyłane. Po zakończeniu oczywiście dostajemy finalny produkt (elektroniczny). To ma sens np. w przypadku Angular5, gdzie książka jest aktualizacją poprzedniego wydania do Angular2 i duża część jest niezmienna.

Angular, dla osób które nigdy wcześniej o nim nie słyszały, to framework oraz zbiór wzorców oraz komponentów wizualnych używający języka JavaScript (a właściwie nadbudówki na niego o nazwie TypeScript dodającą statyczne typowanie) umożliwiających szybkie tworzenie atrakcyjnych aplikacji WWW których logika jest po stronie przeglądarki. Angular został stworzony i jest promowany przez Google i jego najlepszymi przykładami użycia jest aplikacja GMail oraz narzędzia z rodziny Google Drive.

Książka jest dobrze zaplanowana, bo poza wprowadzeniem do koncepcji Angulara, jego narzędzi i kolejnych elementów, zawiera rozdziały uzupełniające wiedzę „przed-angularową” dla osób które nie są na bieżąco z rozwojem języka JavaScript: ECMAScript, podstawy TypeScript, opis narzędzia npm oraz podstawy RxJS (programowania reaktywnego).

Już w ramach właściwego Angulara książka opisuje najważniejsze elementy frameworku niezbędne do stworzenia niemal kompletnej aplikacji, w tym routing adresów URL, FlexLayout do tworzenia ładnego i wygodnego interfejsu użytkownika, formularze do wprowadzania i walidowania danych, komunikacje aplikacji z serwerem przez REST API i WebSocket, testowanie jednostkowe i zarządzanie stanem przez ngrx (odpowiednik Redux’a używanego często z React).

W ramach praktycznych ćwiczeń książka prowadziła przez implementacje aplikacji ngAuction – prostego UI do aukcji internetowych z prostym katalogiem produktów. Po zakończeniu lektury czytelnik powinien mieć jako przykład gotowy produkt do użycia w swoich własnych aplikacjach. Do tego dostępne jest publiczne repozytorium z kodem na github do sprawdzenia poprawnej wersji (aktualnie już dla Angular6!).

Książka niestety nie jest wolna od wad:

  • od pewnego momentu autorzy przestali umieszczać wszystkie zmiany kodu w aplikacji i kolejne wersje nagle zawierały fragmenty które nie wiadomo skąd się wzięły – trzeba było się domyślać lub korzystając z referencyjnej implementacji z github uznawać że „tak ma być”,
  • rozdział o ngrx był hardcore’owy nawet dla uważnego czytelnika – bez większego praktycznego doświadczenia z zarządzaniem stanem w aplikacjach JS próg wejścia jest wysoki,
  • nie było ani słowa o wzorcach autentykacji (logowania), a to podstawowy element takich aplikacji,
  • nie było ani słowa o wzorcu czy komponencie do pagerowania listy rekordów,
  • nie było nic o PWA i użyciu ServiceWorkerów, a to ostatnio bardzo silnie forsowany na przez Google’a aspekt tworzenia aplikacji SPA.

Reasumując: warto. Gdybym miał tworzyć zespół do pracy nad projektem używającym Angulara, to z pewnością zaleciłbym tą książkę jako punkt początkowy nauki.

O autorze

Marek Berkan Marek Berkan: programista, motocyklista, żeglarz, eks-wspinacz, zamiłowany turysta. Witryny: , , .

Share Button

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *