Blog

13 listopada 2018 Tomasz Kołodziej

Dutch PHP 2017

Dutch PHP 2017

Autorami wpisu są: Adam Mrowiec, Damian Goc

W tym roku konferencja Dutch PHP odbyła się w dniach od 29 czerwca do 1 lipca, tradycyjnie w centrum konferencyjnym RAI w Amsterdamie. Konferencja przyciąga rzeszę deweloperów PHP, jak i mnóstwo pasjonatów technologii. Można było też spotkać wiele firm z branży.  Pierwszego dnia konferencji, jak w poprzednich latach, odbywały się warsztaty. Natomiast kolejne dwa dni były poświęcone prelekcjom.

Podróż

Na wyjazd firma wydelegowała dwóch przedstawicieli, Adama i Damiana. W dniu 29 czerwca o godzinie 16:35 rozpoczęliśmy podróż samolotem z lotniska Katowice Pyrzowice bezpośrednio do Amsterdamu. Niestety nie obyło się bez opóźnienia samolotu. Na miejscu czekała nas miła niespodzianka. Lotnisko miało bezpośrednie połączenie koleją pod centrum konferencyjne, dzięki czemu po niespełna 20 minutach byliśmy na miejscu. Stamtąd po około 15 minutach marszu z walizkami dotarliśmy do hotelu.

Amsterdam

Jako, że wykłady rozpoczynały się nazajutrz, resztę dnia spędziliśmy na zwiedzaniu Amsterdamu. Niestety na dokładne zwiedzanie nie mieliśmy wiele czasu, ale to co nam się udało zobaczyć było niesamowite. Zabytkowa architektura w otoczeniu kanałów zrobiła na nas ogromne wrażenie.

Dutch PHP 2017 – dzień 1

Pierwszy dzień wykładów rozpoczął się o 9:30. Na miejscu byliśmy już kilka minut wcześniej. W pierwszej kolejności zarejestrowaliśmy się i odebraliśmy identyfikatory uczestnika imprezy. Po załatwieniu formalności ruszyliśmy w kierunku dużej auli wykładowej, gdzie rozpoczął się keynote. Wspólnie ustaliliśmy, że będziemy się starać chodzić na różne tematy.

Keynote: Beyond Code (Juozas “Joe” Kaziukėnas)

Konferencja nie była poświęcona samej tylko technologii. Bardzo dużą uwagę poświecono, tzw. „miękkim umiejętnościom”. Prowadzący skupił się na umiejętnościach, jakie powinno się rozwijać aby być dobrym i cennym developerem. Przekonywał, że liczy się nie tylko znajomość frameworków czy narzędzi. Ważne jest, aby być komunikatywnym, umieć pracować w zespole itd.

Cooperative Multitasking With Generators (Christopher Pitt)

Bardzo ciekawa prezentacja przedstawiająca działanie generatorów i ich wykorzystanie na przykładzie. Prowadzony był przez nieco szalonego i spontanicznego osobnika, który rozpoczął wykład od przysiadów… Z racji, że generatory na wyjściu dają iterator, przedstawił najpierw interfejs iteratora oraz omówił różnicę między iteratorem a tablicą. W następnej części przeszedł do przedstawienia samych generatorów. Był to jeden z lepszych i praktycznych wykładów tego dnia.

Niepełną prezentację można znaleźć tutaj: https://speakerdeck.com/chrispitt/cooperative-multitasking-with-generators

Breaking Limits on the Web

Prowadzący omówił zagadnienie standardu Progressive Web Apps oraz przedstawił możliwości komunikacji przeglądarki obsługującej standard PWA z różnego rodzaju urządzeniami. Przedstawił również aktualny stan API urządzeń, które mogą być użyte do dostarczenia danych z wszelakich sensorów oraz w jaki sposób możemy skonsumować te dane w naszej aplikacji.

I deploy on Fridays (and maybe you should too)

Prelegent na przekór rozpowszechnionej w działach IT teorii “Don’t deploy on Friday”, starał się wyjaśnić jak bardzo błędne i niesłuszne jest owo przekonanie. Zadał kilka trafnych pytań dotyczących genezy powyższej teorii. Główne odpowiedzi, jakie padały z sali prowadziły do tych samych wniosków:

  • nie ufamy do końca jakości wypuszczanych przez nas feature’ów
  • nie ufamy do końca jakości testów
  • nie ufamy procesom CI/CD

Przekonywał do codziennej pracy nad udoskonalaniem powyższych procesów, budowie wzajemnego zaufania wewnątrz zespołu jak i poprawy komunikacji z „biznesem”.

The first few milliseconds of HTTPS

Temat można krótko skomentować jako historia SSL w pigułce. Ponadto prowadzący dość ogólnie przedstawił główne założenia komunikacji poprzez powyższy protokół. Na koniec omówił rodzaje certyfikatów oraz sposoby ich zakupu.

Climbing the Abstract Syntax Tree (James Titcumb)

Poprowadzona na wesoło prezentacja, opisująca jak system AST wbudowany w interpreter PHP7 uprosił i przyśpieszył interpretację naszego kodu. Można było się na niej dowiedzieć jak kluczowa jest wiedza odnośnie działania samego interpretera. Pozwoli ona w znaczny sposób doveloperowi zrozumieć zachowanie kodu.  

Relacja z podobnej prelekcji: https://vimeo.com/188950463

Caching with PSR-6 and PSR-16 (Hannes van de Vreken)

Solidny wykład na temat standardów cachowania danych w PSR-6 i PSR-16. Rozpoczął się od przedstawienia, jak wyglądało cachowanie przed wprowadzeniem owych standardów. W dalszej części można było usłyszeć o wprowadzonych standardach i różnicach pomiędzy nimi. Zostały również przedstawione interfejsy dla cachowania dostępne na packagist.org i jak z nich korzystać.

Link do biblioteki: https://packagist.org/search/?q=psr%2Fcache-implementation

Przykłady opisujące: https://jgxvx.com/php-psr-6-vs-psr-16/

Long running PHP Processes (Giorgio Sironi)

Pokazana w ciekawy sposób możliwość uruchomienia skryptu PHP w procesie będącym w ciągłej pętli (daemonie).  Podczas prezentacji były również omawiane problemy, na jakie można się natknąć podczas wykorzystywania PHP do takich celów. Minusem był brak przedstawienia możliwości narzędzi do nadzorowania takiego procesu, a jedynie wylistowanie ich nazw.

Prezentacja:  https://giorgiosironi.github.io/talks/long_running_php_processes/slides

43 PhpStorm Tips & Tricks (Gary Hockin)

Na koniec dnia pozostał bardzo luźny temat wykorzystania ciekawych możliwości jakie daje narzędzie PHPStorm, a które mogą ułatwić i przyspieszyć development kodu. Znaczna część skrótów i trików była nam raczej znana. Najbardziej zaimponowało mi narzędzie do refaktoringu kodu, które jest znacznie bardziej rozbudowane niż myśleliśmy.

Podobny film: https://www.youtube.com/watch?v=pP9jw3fgrCU&feature=youtu.be

Conference Social

After party odbyło się w pubie „Akhnaton” w centrum Amsterdamu. Na imprezie mogliśmy skorzystać z baru i porozmawiać na temat konferencji spokojnie przy piwku. Udało nam się też poznać innych przedstawicieli z Polski.

Dutch PHP 2017 – dzień 2

Making BDD work for you (Nikolas Martens)

Jedna z serii prezentacji o „umiejętnościach miękkich”, na temat wykonywania testów BDD. Prowadzący przedstawiał, jak należy pisać scenariusze testowe, jak uzyskiwać stosowne przykłady od „biznesu”. Można było się dowiedzieć, że należy pisać scenariusze w oparciu o wszelkie uzyskane przykłady i ich kombinacje. Jest to bardzo istotne z punktu widzenia komunikacji „biznesu” z warstwą developerską.

Bruce Lee Driven Development

Prezentacja przeprowadzona w równie zabawnym tonie co sam tytuł. Lektor przedstawiał podejście do tworzenia oprogramowania oparte o filozofię życiową Bruce’a Lee. Bruce przez lata tworzył swój własny styl walki, którego główną zasadą było jak najszybsze pokonanie przeciwnika przy jak najmniejszym nakładzie sił. Taką też, opartą na prostych i szybkich rozwiązaniach, filozofię tworzenia oprogramowania promuje autor. Przestrzegał on przed zaprzęganiem narzędzi, których kaliber jest nieadekwatny do potrzeb, tylko dlatego, że narzędzie jest „trendy” lub po prostu mamy ochotę je wypróbować.

M-M-M-Monads! (Christopher Pitt)

Całkiem fajny i praktyczny wykład na temat monad, również z „gościem” od przysiadów. Rozpoczął się wprowadzeniem do stosów, następnie płynnie przeszliśmy do omówienia problemów, na jakie możemy się natknąć podczas programowania, które opisuje prawo Demeter. Ostatecznie prowadzący w zgrabny sposób opisał i przedstawił przykłady, gdzie monady mogą nam przyjść z pomocą.

Niepełną prezentację można znaleźć: https://speakerdeck.com/chrispitt/monads-in-php-nil-php-tek

Continuously delivering containerized, highly available microservices with proper context boundaries and messaging integration

Tematyką prezentacji była głównie architektura składająca się z mikro serwisów. Poruszone zostały zagadnienia związane z poprawną konstrukcją mikro serwisów, ich wzajemnymi zależnościami oraz bezpieczeństwem zmian. Prowadzący przedstawił również zagrożenia płynące z braku kontroli nad mikro serwisami jako logicznej całości, co może prowadzić do chaotycznego przyrostu serwisów oraz rozmyciu odpowiedzialności.

Juggling features to production: Continuous Delivery in PHP

Na wykładzie przedstawione zostało kompleksowe rozwiązanie dla Continuous Delivery pod nazwą nFlow. Zakłada ono użycie najbardziej popularnych rozwiązań i narzędzi takich jak: Jira, Git, Jenkins, Docker oraz Kubernetes. Oprócz typowego środowiska CD proces oferuje tworzenie odseparowanych środowisk testowych per feature. Automatycznie merguje do brancha master oraz integruje nowe zmiany do równoległych feature branchy.

Closing Keynote: Voodoo PHP (Marco Pivetta)

Na koniec konferencji mieliśmy możliwość usłyszeć świetny wykład na temat korzystania z magii w PHP. Został przeprowadzony bardzo na wesoło. Przedstawiono na nim jak i kiedy należy wykorzystywać magię PHP. Można było się na nim dowiedzieć że generalnie trzeba się wystrzegać magii. Jeśli już z niej musimy skorzystać, należy ją solidnie udokumentować. Jak również mogliśmy usłyszeć że najczęściej magię stosuje się w “commonowych” bibliotekach w celu uzyskania uniwersalnych narzędzi.

Zobacz na blogu

09.09.2022
Marcin Jahn
It’s Not Just HTTP It’s Not Just HTTP

In today’s world of cloud-based solutions, distributed systems, and microservices-based architectures, network communication is a...

23.08.2022
Adam Mrowiec
Konferencja IPC 2022 Berlin Konferencja IPC 2022 Berlin

Pandemia wreszcie się kończy, dlatego w tym roku postanowiliśmy wrócić do naszych wyjazdów na konferencje....