Kurs Test Driven Development

Wprowadzenie

Koszyk Koszyk
  • Opis
  • Recenzje
  • Autor
  • Transkrypt
  • Pytania i odpowiedzi
  • QA

11 ocen

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.

  1. Obalenie mitów i wymówek o TDD
  2. Skuteczne metody konstruowania testów
  3. Workflow pracy w Test Driven Development
  4. Wykorzystanie mozliwosci PHPUnit
  5. Modelowanie aplikacji przez testy
  6. Testowanie Legacy Code
  7. Wskazówki od eksperta - praktyka
  8. Kompletne pliki zródlowe i wiele wiecej!

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 TDD

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?

  1. 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!
  2. 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 pracować efektywniej.
  3. 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ń.

Autor: Paweł Rekowski

Człowiek wielu pasji i zawodów - Przedsiębiorca, Programista, Lider, Mówca, Trener, Podcaster, a dodatkowo Tata dwóch rozrabiaków poszukujący skutecznych sposobów jak Czuć się, Wygąldać i Żyć #Lepiej. Od 11 lat w branży IT - od początku związany z PHP. Pracował dla takich marek jak Oferia, Allegro czy BlaBlaCar. Obecnie Team Leader w eMAG.pl, gdzie wdraża Test Driven Development w biurach w Polsce i w Rumunii. Miłośnik ostrych brzmień, skutecznej komunikacji oraz uświadamiania programistów ile kosztuje ich praca.

Człowiek wielu pasji i zawodów - Przedsiębiorca, Programista, Lider, Mówca, Trener, Podcaster, a dodatkowo Tata dwóch rozrabiaków poszukujący skutecznych sposobów jak Czuć się, Wygąldać i Żyć #Lepiej. Od 11 lat w branży IT - od początku związany z PHP. Pracował dla takich marek jak Oferia, Allegro czy BlaBlaCar. Obecnie Team Leader w eMAG.pl, gdzie wdraża Test Driven Development w biurach w Polsce i w Rumunii. Miłośnik ostrych brzmień, skutecznej komunikacji oraz uświadamiania programistów ile kosztuje ich praca.

5

Średnia ocen autora

Ten kurs nie posiada jeszcze transkryptu. Choć bardzo się staramy, wygenerowanie transkryptów do wszystkich kursów jest bardzo czasochłonne. W wielu przypadkach wymaga zaangażowania drogiego oprogramowania i godzin pracy przy poprawianiu transkryptu tak, aby był on możliwie jak najlepszy.

Zależy nam na tym, aby przygotować transkrypty do wszystkich naszych treści. To jedyny sposób dla osób niedosłyszących, aby mogły wygodnie uczyć się technologii. Poza tym, transkrypty ułatwiają skanowanie kursu w poszukiwaniu informacji i jego indeksowanie.

Szukamy osób, które mogłyby nam pomóc w poprawianiu transkryptów. Jeśli masz chwilę wolnego czasu i interesuje Cię dany kurs, w zamian za taką pomoc chętnie udostępnimy Ci wybrany materiał. Wyślij swoje zgłoszenie tutaj, jeśli możesz pomóc nam rozwijać platformę.

  • Informacje
  • Lekcje

Autor: Paweł Rekowski

Czas: 9 godzin

Aktualizacja: 17.06.2018

  • Certyfikat w ramach Ścieżki
  • Dostęp z urządzeń przenośnych
  • Licencje dla firm i szkół
Podaruj w prezencie

Wstęp do kursu

  • Wprowadzenie

  • Czym jest TDD

  • Konsekwencje braku testów

  • Popularne mity i wymówki

  • Piramida testów

  • Specyfikacja projektu

Workflow w TDD

  • Konfiguracja środowiska

  • Nazewnictwo I konstrukcja

  • Cykl RED - GREEN - REFACTOR

  • Metoda 0, 1, N, Exception

  • Setup klas testowych

  • Refactoring

  • Przygotowanie talii kart

Metody testowania

  • Test interfejsu Iterator

  • Test interfejsu ArrayAccess

  • Testy dla wielu elementów

  • Testowanie funkcji PHP

  • Wstrzykiwanie zależności

  • Testy zależne

  • Testowanie wypisywania

  • Funkcjonalności projektu

  • Game Service Test

Mechanizmy w PHPUnit

  • Stub / Mock / Spy

  • Modelowanie aplikacji

  • Data Provider

  • Wyjątki i kolejność graczy

  • Code coverage

  • Test suites

Implementacja projektu

  • Dwójki i dobieranie kart

  • Czwórki i opuszczenie kolejek

  • Walet - żądanie wartości

  • Damy i Króle

  • Asy - zmiana koloru na stole

  • Wybór pierwszej karty do gry

  • Rozdanie kart dla graczy

Codzienne wyzwania w TDD

  • Mockowanie interfejsów

  • Makao - pierwsza runda

  • Testowanie Legacy Code

  • 100 coverage z bugami

Więcej niż testowanie

  • Mockowanie z Prophecy

  • Mockowanie z Prophecy cz. 2

  • Rozwiązywanie bugów w TDD

  • Testy jako dokumentacja

Podsumowanie

  • Co dalej

  • Zakończenie

}