Wprowadzenie
Jeżeli programujesz w PHP i masz dość wysypujących się aplikacji oraz powtarzających się błędów, to bardzo dobrze trafiłeś. Ten kurs nauczy Cię jak pisać najpierw testy, a później kod. Poznasz moje najlepsze techniki oraz strategie, które sprawdzają się w tworzeniu nowych aplikacji oraz w pracy z Legacy Code. Zmienisz swoje nastawienie do testów, pozbędziesz się wszystkich wymówek i nauczysz się jak zastosować TDD w praktyce.
Obalenie mitów i wymówek o TDD
Skuteczne metody konstruowania testów
Workflow pracy w Test Driven Development
Wykorzystanie możliwości PHPUnit
Modelowanie aplikacji przez testy
Testowanie Legacy Code
Wskazówki od eksperta - praktyka
Kompletne pliki źródłowe i wiele więcej!
Kurs składa się z siedmiu modułów, które krok po kroku wprowadzą Cię do świata Test Driven Development. Na początku rozprawimy się z popularnymi wymówkami, które blokują Cię przed pisaniem testów. Poznasz niezbędną teorię, a następnie przygotujemy środowisko do pracy. W trakcie kursu stworzymy prostą grę karcianą - Makao, zaczynając za każdym razem od testów, których w trakcie całego kursu napiszemy wspólnie znacznie ponad 100. Zdobędziesz wiedzę i doświadczenie, które wyniosą Twój kod na wyższy poziom działania, jakości oraz bezpieczeństwa.
Mity, wymówki i konsekwencje braku testów
Test Driven Development jest jak zdrowy styl życia. Każdy słyszał, że warto to robić, ale mało kto stosuje się do tego w praktyce. Pokażę Ci realne przykłady konsekwencji braku testów, obalę popularne mity oraz pozbędziemy się Twoich wymówek, by nie pisać testów. Zobaczysz czym jest TDD oraz jak powinna wyglądać piramida testów w Twoim projekcie.
Workflow w TDD
Praca w Test Driven Development ma swoją kolejność. Poznasz cykl Red - Green - Refactor, właściwe nazewnictwo oraz metodę 0, 1, N, Exception. Dzięki temu będziesz wiedzieć dokładnie od czego zacząć. Nauczysz się używać PHPUnit, czyli podstawowego narzędzia do tworzenia testów w PHP, oraz dowiesz się co testować, a czego nie.
Metody testowania
PHP dostarcza wiele funkcjonalności, które stanowią wyzwanie podczas testowania. Pokażę Ci jak testować podstawowe interfejsy i elementy języka PHP. Dowiesz się jak poradzić sobie z testowaniem funkcji losowych, takich jak shuffle, rand czy daty oraz czas, by Twoje były od nich niezależne. Zobaczysz jak poprawnie wstrzykiwać zależności oraz tworzyć zależności między testami, by pisać kod szybciej i lepiej.
Mechanizmy w PHPUnit
W tej części nauczę Cię jak korzystać w pełni z możliwości najlepszej biblioteki do testowania w PHP. Dowiesz się czym jest Stub, Mock oraz Spy i jak ich używać poprawnie. Dowiesz się jak testować wiele przypadków jednocześnie dzięki Data Providerom oraz jak oddzielać testy jednostkowe od integracyjnych przy użyciu Test Suites. Na koniec zobaczysz jak generować raporty pokrycia kodu, czyli Code Coverage. Zrozumiesz dlaczego 100% pokrycia jest proste do uzyskania i nie jest to dobra miara jakości kodu.
Implementacja gry w MAKAO
Cały kurs jest nastawiony na praktyczne zastosowanie TDD. Część testów będziemy tworzyć wspólnie, ale czekają na Ciebie również zadania domowe. Nie da się nauczyć TDD tylko o tym słuchając, dlatego napiszemy wspólnie ponad 100 testów jednostkowych i integracyjnych, gwarantujących poprawne działanie gry w Makao. Będę dzielić się z Tobą swoim 11-letnim doświadczeniem w programowaniu w PHP oraz pokażę Ci swoje najlepsze triki i strategie na rozwiązywanie skomplikowanych przypadków.
Codzienne wyzwania w TD
Ponieważ nie żyjemy w próżni, kolejny dział będzie poświęcony pracy z Legacy Codem. Zobaczysz co powoduje, że nikt nie lubi starego kodu i o ile więcej pracy musisz w niego włożyć, by czuć się bezpiecznie. Zobaczysz, że testowanie takiego kodu jest możliwe, kiedy zastosujesz się do kilku prostych metod. Zobaczysz, że 100% pokrycia kodu nie gwarantuje Ci bezpieczeństwa. Wypunktuję Ci najczęstsze błędy początkujących.
Więcej niż testowanie
Na koniec poznasz ciekawe alternatywy i możliwości skutecznego testowania zależności w PHP. Nauczę Cię również naprawiać bugi z użyciem TDD, dzięki czemu nigdy więcej nie będziesz musiał naprawiać dwa razy tego samego. Zobaczysz, że testy stanowią idealną formę dokumentacji oraz znacznie przyspieszają wdrażanie nowych osób do projektu. Uruchomimy stworzoną grę oraz podsunę Ci kilka pomysłów jak możesz ją samodzielnie rozwinąć, by sprawdzić zdobytą wiedzę w praktyce.
Dla kogo jest ten kurs?
Ten kurs powstał dla programistów dobrze znających język PHP, którzy wiedzą jak pisać kod aplikacji, ale nie potrafią pisać testów lub chcą robić to lepiej. Jeżeli widzisz PHP po raz pierwszy, to najpierw nabierz trochę wprawy i wróć do tego materiału za kilka miesięcy. Nie potrzebujesz natomiast żadnej znajomości PHPUnit, czy innych zewnętrznych narzędzi lub bibliotek. To kurs dla Ciebie, jeżeli chcesz tworzyć bezpieczne aplikacje o wysokiej jakości, którym możesz zaufać. Oprócz tego, jeśli chcesz przestać się stresować, że po wdrożeniu znowu coś przestanie działać, lub masz dość powtarzających się błędów na supporcie - to ten kurs jest dla Ciebie.
Dlaczego wybrać właśnie ten kurs?
Kurs wideo to najbardziej efektywna a zarazem najprzyjemniejsza forma nauki. Jest on tak prowadzony, byś cały czas mógł go śledzić z zainteresowaniem i zaangażowaniem, a także czerpać satysfakcję ze zdobytej wiedzy!
Wiedza, którą otrzymujesz w tym kursie, to nie tylko sucha teoria, ale również wskazówki od praktyka z wieloletnim doświadczeniem, dzięki którym dużo łatwiej będzie Ci opanować materiał i tworzyć solidne aplikacje.
Uczysz się na praktycznych przykładach. Kurs, który masz przed sobą to esencja praktycznej wiedzy i doświadczenia a także wzorów, które oszczędzą Ci godziny pracy i poszukiwań.