Rovinj, Croatia

Letni obóz, czyli wspomnienia z Web Summer Camp 2018

Na Web Summer Camp wybierałem się od kilku lat. Tym mocniej zależało mi, aby znaleźć się tam znaleźć, im bardziej konferencje w Polsce puchły i puchły. Obecnie ciężko znaleźć ogólnopolską konferencję, której liczba uczestników jest mniejsza niż 1000 osób. Dla mnie taki 4Developers czy nawet PHPCE (aka PHPCon) stały się kongresami, a nie spotkaniami ludzi, którzy chcą wzajemnie dzielić się doświadczeniami zawodowymi.

Web Summer Camp nie jest stricte konferencją, jest to 3-dniowe wydarzenie z 5 ścieżkami podczas których odbywają się warsztaty. W tym roku ścieżka PHP miała 2 równoległe programy po jeden-dwa warsztaty dziennie.
Największą zaletą jest moim zdaniem to, że organizatorzy (dzięki Ivo & Netgen!) ciągle starają się trzymać limit około 200 uczestników. Dużo? Dochodzi do tego podział na ścieżki (różne piętra, budynki) i tworzą się bardzo kameralne spotkania po 15-30 osób.
Integracja podczas #wsc bardzo przypomina mi początkowe edycje PHPCon Poland (Góry Świetokrzyskie, ~ 90 osób), a jeszcze bardziej Zimowisko Linuksowe (~50-60 osób). Jakby człowiek się uparł mógłby każdego bezpośrednio poznać, zamienić kilka zdań itp.
Największy minus? Wejściówka kosztuje około 550 Euro (dokładnie 4 000 kun). Doliczając transport, nocleg itp. robi się spora sumka.

Web Summer Camp 2018 - pamiątkowe zdjęcie uczestników

Skąd się wziął Web Summer Camp?

Pierwsza edycja odbyła się w 2012 roku pod nazwą eZ Publish Summer Camp. Trochę śmiesznie, ponieważ sporo osób uważa, że eZ to nie do końca to co świat PHP lubi najbardziej. A dlaczego eZ? Ponieważ Netgen, firma-organizator w tamtym czasie tworzyła głównie w oparciu o narzędzia i biblioteki udostępniane przez eZ. Swoją drogą Symfony nie było jeszcze wtedy tak popularne (Sf2 zostało wydane w połowie 2011 roku).
Edycja 2012 i 2013 (pod tą samą nazwę) odbywały się na wyspie Brač w pobliżu Splitu i Makarskiej.

Rok 2014 to powiew świeżości. Przede wszystkim została zmieniona nazwa na bardziej ogólną PHP Summer Camp (eZ miał osobną ścieżkę w tym samym miejscu, ale pod starą nazwą), a samo spotkanie przeniesiono na Istrię do miasteczka Rovinj.
Warsztaty odbywały się w grupie tych samych hoteli co dzisiaj – Maistra, ale w piękniejszej lokalizacji – Hotel Park (dziś w przebudowie i ze zmienioną już nazwą na Grand Park Hotel).

Od 2016 roku całość organizowana jest już pod wspólną nazwą – Web Summer Camp. Na początku z 3 ścieżkami (PHP, eZ, Design), ale co roku tworzona jest nowa ścieżka (2017 – Design przekształciło się w UX, doszło JS; 2018 – pojawia się Biz, PHP ma 2 ścieżki).

St. Catherina Island, Croatia

Istria

Istria to największy półwysep Adriatyku. Od kontynentu (Chorwacji) Istrię oddzielają wapienne góry oraz płaskowyż podgorkiego Krasu i gór Čičariji. Najwyższy szczyt to Vojak (1396m n.p.m). Południowa część półwyspu to uprawy zbóż, winnej latorośli i sadownictwo.
Historycznie mieszkały tutaj plemiona Ilirów (Histrowie, Liburnowie). Do dzisiaj popularne są konstrukcje z tamtejszych czasów – bezzaprawowa technika łączenia kamieni. Około 178 r.p.Ch. rozpoczyna się ekspansja Rzymu, który bardzo szybko skolonizował półwysep.
Założone w tamtym czasie rzymskie miasto to m.in. Pula (Pola), Poreč (Parentinum), Triest (Tergeste), Labin (Albona) jak również główna droga Via Flavia z Puli do Akwilei.
Istria w późniejszym okresie znajdowała się również pod panowaniem Cesarstwa Bizantyjskiego – w tym okresie powstają takie budowle jak Bazylika Eufrazjana w Poreču czy Bazylika Marii Formozy w Puli. Następnie przyszedł czas Słowian, którzy zmagali się z zajęciami głównie przez Włochów aż do 1947 roku kiedy Istria została przyznana Jugosławii.

I do dzisiaj na Istrii te 3 „cywilizacje” się niesamowicie przenikają. Dla Włochów, ze względu na wielojęzyczność całego półwyspu (oficjalnymi językami jest chorwacki, włoski, słoweński) jest to częsty cel wakacji.
A dla nas? Interesującą odmianą. Istria niby chorwacka, ale na każdym kroku można spotkać zabytki z czasów rzymskich. Jak również sama zabudowa, szczególnie w turystycznych miasteczkach jak Rovinj przypomina bardziej klimat włoski niż bałkański.

Rovinj - w drodze na wyspę św. Katarzyny

#wsc 2018

Trudno mi cokolwiek napisać, bo wszystko było na mocne: „tak, chcę znowu!”. Mimo, że Rovinj jest drogie, jest to fantastyczne małe miasteczko, z przedmieściami jak na wsi. Co 5 minut drogi kawiarenka, gdzie mieszkańcy z rana piją kawę czytając gazetę. Piekarnie ze smakowitymi burkami.
Organizacja Web Summer Camp na bardzo dobrym poziomie. Wszystko na czas, „brak korków”, dobra agenda, wszystko bez pośpiechu. Można powiedzieć, że było równie dobrze jak na PHP Srbija, jak nie lepiej.

Dwa warsztaty najbardziej zapamiętam. Stefan Priebsch (thePHP.cc) ze szkoleniem Code Like A Pro. Profesjonalnie poprowadzony warsztat jako wstęp do TDD z wykorzystaniem phpUnit.
Dystans Stefana do samego siebie też rewelacyjny – wprowadzeniem było jak to Niemcy zajmują na wakacjach leżaki nad basenem hotelowym. Podkreślił, że proste testy można napisać w czystym PHP, ale ciężko nam będzie w takim wypadku przetestować różne zdarzenia (zajęty / wolny leżak, czy leży na nim ręcznik, czy obok nie jest zajęty przez czyjąś żonę itp.).
Zaznaczył przy okazji, że musimy pamiętać, aby odpowiednio nazywać metody testujące. Aby w przypadku błędów (Fail) nazwy były jednoznaczne bez patrzenia w kod testu.
Pamiętajmy, że testujemy zachowanie obiektów a nie ich właściwości (nie powinniśmy potrzebować refleksji, psuje ona enkapsulacje obiektu – co się stanie jak zmienisz nazwę prywatnej zmiennej?).

Pula - Arena

Po przerwie palce poszły w ruch i Stefan zaprezentował nam jak działa Eurojackpot. Na GitHub udostępnił nieskończony szkielet aplikacji z testami na różnym etapie zaawansowania. Zadaniem było wypełnienie odpowiednio przygotowanych testów, a następnie odpowiedniej implementacji logiki biznesowej.
Najważniejszą lekcją jaką starał się przekazać prowadzący to, że:

  • testy piszemy najpierw (projekt przed implementacją)
  • zasada „red / green / refactor” (gdy testy są zielone oprogramowanie jest gotowe; dzięki green wiemy kiedy skończyć)
  • emerging design (budujemy projekt od use case a nie budowy zależności pomiędzy klasami)
  • uruchamiaj testy często (powinny trwać < < 1 sekundy)

Drugim wyśmienicie poprowadzonym warsztatem (w podobny sposób – teoria + praktyka) był Web application security. Anna Filina włożyła dużo pracy w przygotowanie prelekcji, aplikacji z błędami (do ściągnięcia z GitHub), którą poprawialiśmy na żywo jak również samych warsztatów.
Anna z całych sił (z sukcesem) starała się przekazać wszelką wiedzę jaką posiada nt. dobrych praktyk w tworzeniu aplikacji. Z 70% czasu upłynęło w formie wykładu (slajdy) wprowadzającego do zadania polegającego na poprawieniu kodu, który zawiera potencjalną lukę.

Pozostaje mi tylko zaprosić Was za rok.

PS: Zdjęcia na Flickr. WSC 2018 i trasa, Rovinj, Pula, Zagreb.