W tym roku nareszcie udało mi się wygospodarować trochę czasu na przełomie września i października, dzięki czemu mogłem wziąć udział w największej konferencji branżowej dla programistów PHP: PHPCon, która w tym roku odbyła się w hotelu: “Hotel Ossa Congress & Spa” w niewielkiej miejscowości o tej samej nazwie, między Rawą Mazowiecką, a Białą Rawską (podobnie zresztą jak przed rokiem). O ile w konferencjach: 4developers od kilku dobrych lat uczestniczę regularnie, tak to był mój pierwszy PHPCon, stąd pomysł podzielenia się ogólnymi wrażeniami.
Organizacyjnie cała konferencja wypadła bardzo dobrze z drobnymi zgrzytami, które miały miejsce jeszcze przed samą konferencja i na samym starcie:
- dość dziwna sytuacja z miejscami noclegowymi w hotelu (podobno nie był to odosobniony przypadek) – organizatorzy najpierw przyjeli zamówienie na wejściówki i hotel, by na tydzień przed konferencją poinformować, że niestety ale brakuje im miejsc i trzeba szybko zarezerwować nocleg w innym pobliskim hotelu. W tej sytuacji bardziej jednak doszukiwałbym się winy po stronie hotelu;
- po dotarciu na miejsce w piątek rano byłem lekko zdezorientowany – nie znalazłem żadnych informacji na temat samej konferencji i jako, że to był mój 1
PHPCon
trochę ciężko było mi się odnaleźć. Po rejestracji, która była dostępna od 15 dalej było już tylko lepiej;
Na duży plus warto wspomnieć o:
- świetnym hotelu, który zaskoczył bardzo pozytywnie: ładne pokoje, bardzo dobre jedzenie (bez ograniczeń) i co najważniejsze prelekcje / warsztaty w tym samym miejscu (nie dotyczy to oczywiście osób z wcześniej wspomnianym problemem noclegowym). Nie wiem ilu dokładnie uczestników brało udział w tegorocznym PHPConie ale organizacja śniadań / obiadów / kolacji była bardzo dobrze przemyślana – czego nie można powiedzieć np: o obiadach w czasie 4developers;
- miło zaskoczyła mnie również maskotka
PHP
w pakiecie startowym podczas rejestracji – mój dwuletni syn był zachwycony 🙂
Warsztaty
Niestety z przyczyn logistycznych udało mi się wziać udział tylko w jednych warsztatach z PHPSpeca
. Zajęcia podobnie jak warsztaty z Symfony2
były mocno wprowadzające w temat i dotyczyły przede wszystkim podstaw. Na koniec zajęć Miro Svrtan zaprezentował jak w prosty sposób zamodelować / wygenerować klasy pod prosty projekt startupu bankowego na bazie mocno ograniczonych wymagań.
Prelekcje
Przechodząc do sedna – większość prezentacji była na naprawdę wysokim poziomie, a na szczególne wyróżnienie zasługują prelekcje:
- Mariusz Gil: “Discovering graph structures” – zgodnie z oczekiwaniami była to prawdopodobnie najlepsza prezentacja tegorocznego PHPCona. Mariusz w bardzo ciekawy sposób przedstawił alternatywne i zdecydowanie dużo bardziej wydajne podejście do przechowywania danych grafów – normalnie developerzy upychają tego typu struktury danych do relacyjnych baz danych. Zarządzanie obiektami i relacjami zachodzącymi pomiędzy tymi obiektami wydaje się być stosunkowo proste z wykorzystaniem narzędzi jakie oferuje Neo4j. Jako ciekawostkę dodam, że w związku z bardzo dużym zainteresowaniem tematem grafów i
Neo4j
, Mariusz postanowił zorganizować hackaton w mieście wyłonionym podczas głosowania – finalnie wybór padł na Warszawę i Wrocław: - Michiel Rook: “The road to continuous deployment: a case study” – prelekcja dotyczyła ciekawego, a zarazem dość radykalnego podejścia do
continous deployment
. Główne założenia to:- tylko 1 branch:
master
w projekcie w zespole ok 16 programistów; - 100℅ “code coverage”;
- “pair Programming” – jako recepta na mniej doświadczonych programistów;
- “feature toggle”;
- tygodniowe sprinty.
Dzięki takiemu podejściu, w firmie w której pracuje Michiel, udało się uzyskać bardzo dobre rezultaty: nowe funkcjonalności początkowo były wypuszczane średnio co 2-3 miesiące, po prowadzeniu powyższych zasad: co 2-3 dni;
- tylko 1 branch:
- Sebastian Malaca: “Refactoring hacked” – szereg interesujących wskazówek i niebezpieczeństw związanych z procesem refaktoryzacji kodu:
- podstawowa zasada refaktoryzacji: “Leave the code in better state than you found it!”;
- zasada: “czy obiekt wie” – jeśli tak to sam powinien odpowiedzieć jedną metodą;
- wzorzec
Strategy
, zamiast rozbudowanych blokówCASE
; - wzorzec
Visitor
zamiastinstanceof
.
- Ondřej Mirtes: “Keep your users up-to-date in real-time with WebSockets!” – Ondřej zachęcał to PHPowej implementacji Websockets: podobno PHP w wersji
5.6+
i7+
radzi sobie bardzo dobrze z pamięcią, a dobrze napisane skrypty uruchomione jako demony, mogą pracować bez restartowania bardzo długo – przytoczony przykład dotyczył skryptu nierestartowanego przez ok 2 lata. Jest to ciekawa alternatywa dlaNode.js
, którą niebawem będę miał okazję przetestować: ReactPHP; - Tomasz Kowalczyk: “Podejście funkcyjne w projektowaniu oprogramowania” – bardzo interesujący wykład na temat zalet programowania funkcyjnego w PHP;
- Michał Łukaszewski: “Action Domain Response czyli nowoczesny MVC dla aplikacji webowych” –
ACD
jako alternatywa dla dobrze wszystkim znanego wzorcaMVC
; - Olaf Gałązka: “Time travelling with Event Sourcing” – kolejna odsłona dość dobrze już znanego podejścia dla alternatywnego sposobu przechowywania i przetwarzania danych;
Final #neo4j results:
1st place, hackathon, Warsaw with 93 votes
2st place, meetup, Wrocław with 92 votesDifference is only 0.3% #wow pic.twitter.com/OApbpGh4RA
— Mariusz Gil (@mariuszgil) October 3, 2016
Niestety fizycznie niemożliwe było uczestniczenie we wszystkich prelekacjach (równolegle odbywały się 2 prelekcje) ale praktycznie wszystkie (jeśli nie wszystkie?) były nagrywane – materiały video powinny być niebawem dostępne na stronie konferencji.
Dość popularnym tematem konferencji był CQRS
(ang. Command Query Resposibility Segregation) / Event Sourcing i Functional Programming, które obecne były w wielu prelekcjach. Jeśli chodzi o frameworki to królowało przede wszystkim Symfony, aczkolwiek nie zabrakło prezentacji dotyczących architektury, refaktoryzacji i najlepszych praktyk.
Programistok
Jako ciekawostkę warto wspomnieć, że w czasie minionego weekendu miała miejsce inna bardzo ciekawa konferencja programistyczna: Programistok. Żałuję, że terminy pokryły się z PHPConem bo wstępnie planowałem w niej uczestniczyć. Poniżej bardzo fajnie zmontowane video z zapowiedzią konferencji, które warto zobaczyć:
Wracając do PHPCona, wydarzenie uważam za bardzo udane i szczerze zachęcam do uczestnictwa w kolejnych edycjach. Z tego co udało mi się dowiedzieć, impreza za rok ma się już odbyć w trochę zmienionej formie na znacznie większą skalę jako PHP CE (Central Europe).
Do zobaczenia za rok!