W ubiegłym tygodniu wybraliśmy się z Leszkiem na PHPers Summit 2018 – konferencję dla programistów PHP w Poznaniu. Spotkanie rozpoczęło się w piątek 28. czerwca od dnia warsztatów. Ja wybrałem spośród 6 szkoleń kurs Test Driven Development w Legacy Code, prowadzony przez Pawła Rekowskiego. Decyzja okazała się tak dobra, że zdecydowałem się nią pochwalić i opisać poniżej przebieg szkolenia.
Oczekiwania miałem wysokie – Paweł obiecywał, że zapanujemy nad Potworem Spaghetti, czyli zaśmieconym kodem. Zapewniał też, że poznamy najlepsze triki i strategie, które postawiły wiele aplikacji na nogi i pomogą też naszym.
Jeden z projektów nad którym obecnie pracuję, to kod, który przejęliśmy od innej firmy – jest całkiem nieźle napisany, ale brakuje w nim testów. Ja planowałem zmienić ten stan rzeczy, toteż miałem nadzieję, że warsztat będzie stanowił punkt wyjścia dla tych działań. Nie zawiodłem się – mimo, że na sali było 20 osób, Paweł Rekowski poprowadził je tak, że każdy mógł poczuć się jak podczas indywidualnych korepetycji.
Było bardzo konkretnie – po szybkim zapoznaniu się i wprowadzeniu do tematu rozwiązaliśmy quiz sprawdzający naszą wiedzę, a następnie… zostaliśmy rzuceni na głęboką wodę. Mieliśmy samodzielnie napisać pierwszy test do przekazanego nam kawałka przykładowego kodu „starej aplikacji”. Na zadanie przeznaczone było 15 minut. Po upływie tego czasu niektórzy zdążyli zacząć coś pisać, inni skończyli na analizowaniu kodu, lecz u nikogo nie powstał poprawnie działający test. Celem było udowodnienie nam, że nie tędy droga 🙂 Przekonaliśmy się na własnej skórze, że próba pisania testów w Legacy Code bez wcześniejszego przygotowania może skończyć się klapą, albo co najmniej wielką stratą czasu.
Następnie Paweł przekazał nam całe mnóstwo wiedzy, własnych doświadczeń i poprowadził za rękę, pokazując na przykładzie, jak można było rozwiązać pierwsze powierzone nam zadanie. Potem jeszcze trochę dobrych praktyk i kolejny quiz 🙂 W następnej kolejności, znów mieliśmy popracować samodzielnie – napisać kolejny test – tym razem sytuacja wygląda już zupełnie inaczej. Nikt nie błądził po omacku, tylko każdy na swój sposób podjął się rozwiązania problemu, żeby zdążyć przed przerwą obiadową.
Po przerwie omówiliśmy dobre praktyki, metodologię pisania testów „0, 1, N, Exception”, ustaliliśmy co warto testować, a czego wręcz nie powinniśmy. Przeszliśmy jeszcze na przykładzie przez temat metryk w testowaniu, a cały warsztat zakończyliśmy ostatnim quizem sprawdzającym nabytą wiedzę. W tym miejscu mogę nieśmiało się pochwalić, że zwyciężyłem i wygrałem „Kurs Test Driven Development” autorstwa Pawła.
Tak jak pisałem na początku, przyszedłem na szkolenie z zamiarem wykorzystania nabytej wiedzy w pracy – słowo ciałem się jeszcze nie stało, ale task został już spisany, a do realizacji zabiorę się wkrótce. Mój udział w warsztacie miał też efekt uboczny- zostałem jednogłośnie przekonany, żebym zostawił leciwego Eclipse’a na rzecz PHPStorma – od poniedziałku dzielnie walczę z przesiadką i staram się przekonać do tego drugiego, ale to temat na osobny artykuł.
Podsumowując – mimo wysokich oczekiwań, warsztat nie tylko wszystkie je spełnił, ale wręcz przerósł. Odnosząc się do opisu warsztatu – “TDD jest jak zdrowy tryb życia – każdy słyszał, że warto, mało kto stosuje” – sądzę, że zakończyłem szkolenie bardziej fit, niż je zacząłem.
źródło
obrazów: https://www.facebook.com/PHPersPL/