Jakiś czas temu postanowiłem zgłębić temat programowania sterowanego testami czyli w skrócie TDD. W internecie wiele osób poleciało książkę Kwnt’a Beck’a TDD Sztuka tworzenia dobrego kodu. Zakupiłem wiec książkę i wziąłem się za lekturę. W tym wpisie umieszczę moje odczucia po przeczytaniu książki oraz pokrótce wyjaśnię na czym polega TDD i jakie korzyści przynosi w codziennej pracy.
Książka podzielona jest na trzy części. W pierwszej części autor za rączkę prowadzi nas przez projekt aplikacji portfela wielowalutowego. Krok po kroku pokazuje na czym polega programowanie w praktyce TDD. Najpierw test, później logika aplikacji. Ale jak to, jak mam testować coś czego jeszcze nie ma? Pierwsze spotkanie z TDD u większości osób wzbudza taką reakcje. Właśnie dokładnie tak samo zareagowałem, gdy pierwszy raz usłyszałem o tej metodzie testowania. W TDD rozpoczynamy tworzenie aplikacji od napisania prostego testu, który w jakiejś części będzie sprawdzał poprawność działania jednej z funkcji aplikacji. Poruszamy się w iteracjach czerwone-zielone-refaktoryzacja, które doprowadzić mają nas do ukończenia aplikacji. Małymi krokami budujemy aplikacje kontrolując by po każdej iteracji wszystkie testy były zapalane na zielono. W pierwszej części książki przykłady napisane są w języku Java. Autor dokładnie wyjaśnia jakie zmiany wprowadza i dlaczego opisuje co jest robione w każdej iteracji.
W drugiej części pokazany jest przykład napisania narzędzia do testowania w języku Python. Z racja, że nie miałem wcześniej styczności z tym językiem przykład jak i sposób jego omówienia w części drugiej nie przykuł mojej uwagi. Cześć drugą osobiście uważam za najmniej interesującą w tej książce.
W części trzeciej autor opisuje dobre praktyki używania TDD. Opisuje wzorce, swoje spostrzeżenia z wykorzystywania TDD w różnych projektach i w różnych zespołach. Dzieli się swoim doświadczenie i pokazuje jakie korzyści przynosi wcielenie metody TDD w projektach. Niewątpliwie jedną z największych korzyści jest danie programiście swobody w wprowadzeniu modyfikacji w projekcie. Zmniejsza się ryzyko popełnienia błędu, a co za tym idzie zmniejsza się stres związany z wprowadzeniem błędu na produkcje. Jesteśmy chętniejsi na wprowadzenie zmian. Programista może skupić się na wprowadzaniu modyfikacji i w szybki sposób sprawdzić poprawność wprowadzonych zmian.
Podsumowując książka TDD Sztuka tworzenia dobrego kodu dobrze wprowadza w tematykę TDD, chociaż spodziewałem się znacznie więcej po niej. Podobało mi się w jaki sposób autor wprowadza krok po kroku czytelnika na podstawie przykładów w TDD. Opisane wzorce i praktyki również stanową dobrą podstawę do tworzenia dobrego kodu. Nie podobała mi się druga cześć, która jak dla mnie była mało ciekawa. Przykłady w książce są w języku Java, trochę mi to przeszkadzało, jednak dało się zrozumieć co dany fragment kodu wykonuje. Czy warto kupić książkę? Sądzę, że podobny wstęp do TDD można uzyskać z tutoriali i artykułów udostępnionych w internecie, zaprezentowanych na przykładach w preferowanym języku programowania np. w C#.