Test-Driven JavaScript Development by Christian Johansen – recenzja książki

Test-Driven JavaScript Development

Test-Driven JavaScript Development Okładka

Ten wpis jest moją pierwszą próbą napisania recenzji książki. Zacznijmy więc od mojej najnowszej pozycji: Test-Driven JavaScript Development napisanej przez Christiana Johansena. Jak napisano na tylnej okładce, Test-Driven JavaScript Development jest kompletnym zbiorem najlepszych praktyk, poradnikiem dla testów JavaScript w metodyce agile oraz zapewniania jakości z użyciem metodologii programowania sterowanego testami (TDD).

Na początku pragnę podziękować autorowi – Christianowi, który dał mi tę książkę na konferencji Front-Trends 2010. Książka jest bardzo świeża (pierwszy druk, wrzesień 2010), tym bardziej jestem podekscytowany jej posiadaniem. Dzięki Christian 🙂

Kim jest autor?

W swojej karierze zawodowej Christian Johansen specjalizował się w aplikacjach webowych oraz programowaniu front-end’u przy użyciu technologii takich jak JavaScript, CSS i HTML przy użyciu rozwiązań agile. Często wnosi wkład w open source, bloguje o JavaScript, Ruby, i tworzeniu stron internetowych na cjohansen.no. Christian pracuje w Shortcut, norweskiej firmie programistycznej, koncentrującej się na otwartych technologiach, aplikacjach internetowych i aplikacjach mobilnych.

Pozostawiając kodowanie w „stylu kowbojskim” starał się poprawiać jakość i zaufanie do kodu. Spędził wiele czasu badając testy jednostkowe i TDD w JavaScript.

Mieszka w Oslo, w Norwegii.

O czym jest ta książka?

Automatyczne testowanie dostarcza rozwiązania do manualnego procesu testowania. Łatwiej, szybciej jest zrobić test automatycznie niż ręcznie. Programowanie sterowane testami idzie o krok dalej. Przesuwa testy jednostkowe do pierwszego wiersza, czyniąc je głównym punktem. W TDD testy są pisane przed pisaniem produkcyjnego kodu.

Książka podzielona jest w 4 części. Każda część może być czytana w innym, niż sugerowany porządku. Generalnie książka jest o programowaniu w języku JavaScript dla „prawdziwego świata” za pomocą podejścia wykorzystującego programowanie sterowane testami. To nie jest tylko styl programowania, to jest zaufanie do kodu z powodu pokrycia testami, możliwość refaktoringu kodu bez lęku. Chodzi o pisanie modułowego kodu, który może być łatwo przetestowany.

Podział książki

  1. Programowanie sterowane testami
  2. JavaScript dla programistów
  3. Prawdziwy świat programowania sterowanego testami w JavaScript
  4. Wzorce testów

Część I. Programowanie sterowane testami

Pierwsza część jest wprowadzeniem do pojęcia zautomatyzowanych testów JavaScript. Autor wyjaśnia je z podstawowych testów jednostkowych (czym są, co robią, do czego są przydatne), a następnie rozszerza podstawowe testy, wprowadza ideę programowania sterowanego testami. Przejście od testów automatycznych do TDD jest płynne i naturalne. Pod koniec tej części Johansen przedstawia kilka frameworków testów jednostkowych, opisuje je i wybiera jeden z nich, który jest najczęściej wykorzystywany w całej książce.

Część II. JavaScript dla programistów

Druga część jest skoncentrowana na głębszym spojrzeniu na programowanie w JavaScript. Może być uznany za pełne wprowadzenie do języka JavaScript. Ta część jest zarówno dla początkujących jak i zaawansowanych programistów js. Pomaga zrozumieć, gdzie JavaScript różni się od innych języków (jeśli mamy przyzwyczajenie do jednego) i daje podstawy potrzebne przy scenariuszach rzeczywistego wykorzystania, opisanych w następnej części. Programiści, którzy są prawdziwymi ninja w js (znają domknięcia, dziedziczenie prototypowe, dynamikę this) mogą chcieć pominąć ten rozdział – ale IMHO jest to dobre przypomnienie.

Część III. Prawdziwy świat programowania sterowanego testami w JavaScript

Jest to główna część książki. Można tam znaleźć informacje na temat procesu rozwoju małego API JavaScript ogólnego przeznaczenia, widgetów zależnych od DOM, abstrakcyjnych różnic przeglądarek, implementowania aplikacji w JavaScript wykonywanych po stronie serwera, wszystko przy użyciu programowania sterowanego testami. Trzecia część koncentruje się na tym jak programowanie sterowane testami może pomóc w budowaniu API i modularnego kodu.

Część ta jest oparta na małych projektach. Każdy z nich wprowadza nowe koncepcje związane testowaniem i pokazuje je w praktyce. Kod dostarczany w tej części jest uruchamialny i rzeczywiście coś robi. Z tej części czytelnik może dowiedzieć się, jak testować kod zależny od API przeglądarki, timerów, obsługi zdarzeń, manipulacji DOM, asynchronicznych żądań, itp. Pomysły, w jaki sposób rozszerzyć funkcjonalność także są oferowane. Rozwiązania rozszerzone dostępne są na stronie internetowej książki.

Wynikiem części o programowaniu sterowanym testami jest w pełni funkcjonalny klient i serwer komunikatora chat, napisany z wykorzystaniem TDD oraz niczym więcej poza JavaScript.

Część IV. Wzorce testów

Ostatnia, końcowa część książki opisuje niektóre techniki używane w poprzedniej części, ale w szerszym spektrum. Testy są bardzo szczegółowo badane z różnych form weryfikacji. Na koniec, autor podaje kilka wskazówek, które pomogą napisać dobre testy jednostkowe.

Opinia

Ta książka jest dla osób, które nie posiadają żadnej wcześniejszej wiedzy odnośnie testów jednostkowych lub programowania sterowanego testami. Podejście TDD jest obecne w całej książce, zatem zapewnia dobre zrozumienie idei. Książka jest przydatna nawet dla tych, którzy nie są ekspertami JavaScript – druga część daje silne podstawy w tej dziedzinie. Każdy rozdział zakończony jest podsumowaniem, które pomaga zebrać wszystkie najważniejsze informacje.

Test-Driven JavaScript Development jest kompletnym podręcznikiem dobrych praktyk dla testowania JavaScript. Obejmuje on wszystkie aspekty stosowania zautomatyzowanych testów w środowisku JavaScript, cały cykl rozwoju projektu. Christian wykorzystując przykłady z życia wzięte pokazuje zasady programowania sterowanego testami (TDD). Pamiętam jego programowanie na żywo na Front-Trends 2010, jest tego znacznie więcej w tej książce. Korzystając z tego podejścia można zbudować łatwiejszy w utrzymaniu i niezawodny kod JavaScript.

Strona internetowa książki (http://tddjs.com) zawiera listingi (archiwum zip i repozytorium git). Dla części III repozytoria Git mogą być szczególnie przydatne ponieważ pokazują historię, pokazują jak kod ewoluował, pozwalają widzieć w każdą zmianę w kodzie.

Dane techniczne

Tytuł: Test-Driven JavaScript Development (Developer’s Library)
Autor: Christian Johansen
ISBN-13: 978-0-321-68391-5
ISBN-10: 0-321-68391-9
Copyright © 2011 Pearson Eduction, Inc.
Gdzie można kupić? Niestety pozycja jeszcze nie jest dostępna w Polsce. Można kupić wersję oryginalną na: Amazon – książka, InformIt – PDF.

 

Przeczytaj także

Komentarze: 2

Dodaj komentarz »

 
 
Marcin Kłeczek
 

Bardzo dobry opis książki – widziałem ją pobieżnie, ale nie byłem do końca zdecydowany (JS nie jest moim podstawowym językiem). Teraz jak ją zobaczę, to kupię. Dzięki.

 

Odpowiedz

 

Thanks a lot for the thorough review, Robert. It appears that you’ve gotten everything out of this book that I had hoped to convey 🙂

 

Odpowiedz

 

Dodaj komentarz

 
(nie będzie publikowany)
 
 
Komentarz
 
 

Dozwolone tagi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
© 2009 - 2016 Vokiel.com
WordPress Theme by Arcsin modified by Vokiel