Po kilku latach spotkań w poszczególnych miastach, społeczność PHPers urosła na tyle, że nadszedł czas na większą imprezę, która zbierze programistów z całej Polski.
Zapraszamy więc wszystkich na pierwszy PHPers Summit, całodniowe spotkanie wypełnione wykładami na temat programowania w języku PHP i okolicznych technologii. Impreza odbędzie się 20. sierpnia tego roku na terenie Międzynarodowych Targów Poznańskich.
Spotkanie będzie kosztowało 64,99 zł. W ramach tej opłaty otrzymacie wstęp na wykłady, pakiet startowy, obiad w dniu Summitu, a także przekąski i napoje w ciągu dnia.
Oprócz wykładów, dzień wcześniej zapraszamy na serię warsztatów, na których najlepsi specjaliści przekażą swoją wiedzę na praktycznych zadaniach. Warsztaty są osobno płatne, a miejsce na nich limitowane.
Rejestrację i opłaty na Summit oraz na warsztaty można dokonać poprzez portal Evenea.
A microframework is a simple and not-opinionated web application framework. It leaves most architecture related decisions up to the developer, as opposed to a full-stack framework that comes with most decisions already made.
Symfony is the only PHP framework that can be used as a full-stack and a micro framework. Now, since the microkernel is part of the core framework, it has never been easier.
Learn how to build your first Symfony microframework application, choose bundles and components you need, and remove all the fat! This exercise will increase your awareness of Symfony's internals which you'll also benefit from when working on a full-stack application. Finally, you will learn how to convert to the full-stack edition with ease as your application grows.
Event sourcing w pigułce czyli podróże w czasie i odporność na coraz to bardziej kreatywne wymagania biznesowe. Kiedy, jak i po co tworzyć naturalny log wydarzeń Twojej aplikacji - plusy i minusy wzorca, przykłady implementacji, event sourcing a CQRS.
Każdy projekt się starzeje - zmieniają się technologie, standardy, podejścia, logika biznesowa. Często okazuje się, że dziedzictwo kodu kilkuletnich projektów jest wielokrotnie większe niż aktualny (dobry) kod. Zdarza się, że chcemy zmodernizować projekt lub musimy po prostu coś naprawić albo sprawić, że nowy kod dogaduje się ze starym. Poznasz różne strategie zmiany Legacy Code - ich zalety i wady. A do tego skomponujemy kompletną skrzynkę potrzebnych narzędzi. Wszystko zobaczymy w akcji na życiowych przykładach Legacy Code!
Programowanie funkcyjne to paradygmat znany od dziesiątek lat, który za sprawą renesansu języków takich jak Haskell znowu staje się popularny. Zapytasz - do czego może mi się to przydać w PHP? Otóż programowanie funkcyjne to także sposób myślenia, który pozwoli Ci na zupełnie inne spojrzenie na kod, który piszesz na codzień. Dzięki kilku technikom i niewielkiej zmianie podejścia Twój kod stanie się czystszy i bardziej przejrzysty, a Ty będziesz w stanie projektować duże rozwiązania komponując je z małych i dobrze przetestowanych fragmentów.
jestem Alexandru Pitis, pracuję dla BlaBlaCar i chciałbym zaproponować prezentację o lexerach, parserach i ich zastosowaniach w codziennej pracy programisty. Całość podzieliłaby się na cztery części - Czym są w zasadzie lexery i parsery i do czego służą, trochę podstaw teoretycznych ( rodzaje, jaka jest zasada działania ), przykład praktyczny na przykładzie i podsumowanie/wnioski.
Testowanie produktu jest chlebem powszednim dla niemal każdej branży. Bez odpowiednich testów nie można wyprodukować samochodu, bądź wybudować domu. Wydaje się naturalnym, by te same reguły dotyczyły także wytwarzania oprogramowania. Skomplikowane, wielowarstwowe aplikacje otaczają nas na każdym kroku. Jedynie testując, możemy zminimalizować dług techniczny oraz sprawić, by utrzymanie danej aplikacji nie było dla nas koszmarem, a użytkownicy byli zadowoleni z jej działania. Wciąż jednak można spotkać się z programistami, bądź nawet całymi firmami wytwarzającymi kod, które podchodzą do tematu testowania nie do końca poważnie, o ile w ogóle. Nie zawsze jedynym powodem jest brak chęci, czy też lenistwo. Bardzo często zdarza się, że firmy rezygnują z testowania, ponieważ jest to dla ich developerów zbyt pracochłonne. Powszechną praktyką jest wtedy zatrudnianie testerów. O ile ręczne przetestowanie aplikacji jest nie do przecenienia, o tyle w trakcie pracy, automatyzacja procesu testowania zwiększa produktywność każdego programisty, jak również dostarcza mu znacznie szybciej informacji, czy jego zmiany działają poprawnie, bądź czy nie popsuły innej części systemu. Poszukując informacji, jak powinniśmy testować, najczęściej trafiamy na przykłady na tyle trywialne, że nijak mają się do rzeczywistego zastosowania w aplikacjach produkcyjnych. Typowe, darmowe szkolenia z zakresu testowania działają na bardzo abstrakcyjnej warstwie, jak chociażby prosty kalkulator. Przykłady te ciężko odnieść do aplikacji posiadającej wiele zależności, czy komunikującej się z zewnętrznymi serwisami. Celem mojego wystąpienia będzie omówienie poszczególnych rodzajów testów oraz pokazanie odpowiadających im narzędzi, bazując na realnych przykładach. W trakcie prezentacji skupię się przede wszystkim na testach konfiguracji aplikacji bazującej na symfony2, testach akceptacyjnych i GUI z wykorzystaniem Behata oraz biblioteki ApiTestCase, a także podejściu do testów jednostkowych z wykorzystaniem PHPSpeca. W prezentacji posługiwać się będę przykładami z ogólnodostępnego kodu oraz na open-source’owych narzędziach, dostępnych na licencji MIT.
Pobudzanie domeny aplikacji w oparciu o zdarzenia jest koncepcją, która zyskuje coraz większe uznanie w przypadku dużych aplikacji operujących na dużych wolumenach, wewnętrznie zależnych i szybko zmiennych danych. Sytuacja zaczyna się jednak komplikować gdy nasza domena jest elementem większej, rozproszonej i nierzadko asynchronicznej całosci, a dane powinny pozostać spójne i wiarygodne.. Celem prezentacji jest przedstawienie głównych problemów na jakich można wyłożyć projekt gdy zaczynamy przygodę z obsługą asynchronicznych zdarzeń dystrybuowanych pomiędzy luźno zależnymi serwisami.
Przedstawię proces powstawania testów automatycznych w OLX wraz ze wszystkimi wyzwaniami i problemami jakie niesie ze sobą automatyzacja dużej platformy w wielu wersjach językowych oraz korzystanie z selenium.
Mikroserwisy... Nowy styl architektoniczny zorientowany na rozbicie monolitycznego kodu na szereg mniejszych aplikacji, skupionych na realizacji konkretnych aspektów biznesowych, komunikujących się ze sobą z wykorzystaniem lekkich protokołów. Mikroserwisy rozwiązują wiele problemów związanych z utrzymaniem i rozwojem monolitów, jednak równocześnie wprowadzają szereg nowych problemów, od projektowania po komunikację w środowisku produkcyjnym. Podczas tej sesji zapoznamy zarówno z konceptem architektury mikroserwisowej i oferowanymi przez nią możliwościami, sposobami implementacji mikroserwisów z wykorzystaniem PHP (a także platformy Amazon Web Services) jak i deploymentem i utrzymaniem kodu w środowisku produkcyjnym. Dodatkowo, naszą uwagę skupimy także na występujących w tej architekturze wzorcach, rozwiązujących szereg typowych problemów projektowych.
PHP7 zdobyło duży rozgłos głównie dzięki ulepszonej wydajności, co w przypadku OLX nie pozostaje bez znaczenia. Dlatego kwestią czasu było zmigrowanie naszych serwisów i sprawdzenia obietnic w praktyce. Podczas prezentacji opowiem o praktycznym wykorzystaniu PHP7, procesie migracji i jej efektach. Na przykładzie OLX zaprezentuję, że PHP7 może być śmiało wykorzystywany do projektów o dużej skali.
Każda aplikacja pod warstwą UX przeprowadza niezliczone operacje, aby zrealizować powierzone jej zadanie. Rozsądne logowanie tych operacji, a także błędów, czy innych informacji jest inwestycją na przyszłość, która może się zwrócić w przypadku wystąpienia jakiejś awarii lub zgłoszenia błędu. Podczas prelekcji opowiem o Monologu - niedocenianej bibliotece, która świetnie nadaje się do tego celu, jak wykorzystać jednolity format logowania do łatwego ich przeszukiwania. Pokażę również jak wykorzystujemy ją podczas pracy nad jednym z największych serwisów rekrutacyjnych w Polsce.
Budowanie funkcjonalności dla biznesu rozproszonego po wielu rynkach, kilkunastu produktach, działających na różnych platformach, gdzie w każdym obowiązują odmienne reguły biznesowe, może być kłopotliwe. W naszym wypadku pomogło stosowanie wzorców projektowych, pełna izolacja warstw aplikacji oraz zastosowanie architektury ports and adapters. Podczas prezentacji pokażę w jaki sposób system został zaplanowany, jakie podjęliśmy decyzje projektowe oraz jakie przyniosły one korzyści i konsekwencje. Zaprezentuję również wykorzystane wzorce oraz całość oprę o przykłady produkcyjnego kodu.
- a-synchronising where required
- leveraging caching
- managing memory in large scale processes
- scaling the databases
- keeping php up to date
- increasing role of QA when working at scale
Ilość miejsc: 20
Czas trwania: 4 godziny
Data: 19 sierpnia 2016
Miejsce: BIUROWIEC OMEGA ul. J.H. Dąbrowskiego 79 A, Poznań - XI piętro
Graf jest zbiorem wierzchołków wzajemnie ze sobą połączonych za pomocą krawędzi. Ta prosta i jednocześnie bardzo potężna struktura pozwala modelować domeny, których przedstawienie w "tradycyjnym"", relacyjnym modelu generuje więcej problemów niż korzyści. Struktury grafowe świetnie poddają się analizie za pomocą różnego rodzaju algorytmów, od znajdowania najkrótszych ścieżek pomiędzy wierzchołkami w grafie czy metodami ich przeszukiwania, po wykrywanie anomalii w zbiorach danych i generowanie rekomendacji na podstawie analizy struktury modelu grafowego.
Aby przybliżyć tematykę od strony technicznej, w czasie szkolenia przedstawione zostaną metody modelowania i przetwarzania grafów w kontekście najpopularniejszego natywnego engine'u grafowego, bazy danych Neo4j. Zapoznamy się tutaj zarówno z możliwościami samej bazy czy językami opisu grafów, jak i komunikacją z aplikacjami opartymi o PHP. Podczas warsztatu będziemy także modelować i implementować dość rozbudowaną domenę, aby w praktyce zastosować omawiane zagadnienia.
Ilość miejsc: 20
Czas trwania: 4 godziny
Data: 19 sierpnia 2016
Miejsce: BIUROWIEC OMEGA ul. J.H. Dąbrowskiego 79 A, Poznań - XI piętro
Chcielibyśmy pokazać Test Driven Development od praktycznej strony poprzez wykonanie z uczestnikami krótkich zadań programistycznych. Warsztat składać się będzie z:
1. Wprowadzenie do techniki TDD
2. Praktyczna prezentacja procesu TDD
3. Ćwiczenia z uczestnikami (code kata)
Zapraszamy szczególnie osoby początkujące.
Ilość miejsc: 20
Czas trwania: 4 godziny
Data: 19 sierpnia 2016
Miejsce: BIUROWIEC OMEGA ul. J.H. Dąbrowskiego 79 A, Poznań - XI piętro
Monolity nie jest najlepszą formą do budowy dużych aplikacji, w tym także webowych. Mogą być ciężkie dla serwerów, a także trudne do rozwoju i utrzymania przez developerów... W wielu przypadkach architektury zorientowane na przekazywanie wiadomości, gdzie serwisy aplikacyjne są luźno powiązane ze sobą poprzez message-bus, pracują znacznie lepiej, zarówno w kontekście designu jak i skalowalności.
W trakcie treningu zapoznamy się z takim konceptem architektury systemu oraz serwerem RabbitMQ jako brokerem wiadomości. Nauczysz się jak dzielić aplikację na mniejsze części i łączyć je z wykorzystaniem kolejek RabbitMQ. Chwilę uwagi poświęcimy także tematyce utrzymania RabbitMQ na produkcji, skalowania oraz wysokiej dostępności.
Ilość miejsc: 15
Czas trwania: 5 godzin
Data: 19 sierpnia 2016
Miejsce: BIUROWIEC OMEGA ul. J.H. Dąbrowskiego 79 A, Poznań - XI piętro
Warsztat przeznaczony jest dla osób, które miały już styczność z Magento.
Opis:
Porównanie Magento 1 oraz Magento 2 podczas budowania modułu od zera. Warsztat podzielony będzie na dwie części:
1. Tworzenie modułu w Magento 1.
2. Tworzenie podobnego modułu w Magento 2 ze wskazaniem różnic i podobieństw.
Podczas warsztatu uczestnicy będą kodowali na żywo wraz z prowadzącym oraz dyskutowali o zastosowanym rozwiązaniach, zauważonych różnicach, metodach eliminowania problemów. Andrzej zaprezentuje praktyczne wskazówki, przydatne zarówno mniej jak i bardziej zaawansowanym programistom. Poruszy także temat kontrowersyjnych rozwiązań, które w Magento doskonale się sprawdzają.
Udział jest bezpłatny, ale aby zakwalifikować się, niezbędne będzie rozwiązanie zadania związanego z Magento - pozwoli nam to zadbać o poziom grupy i zadowolenie uczestników. Dlatego osoby, które zapiszą się na warsztat otrzymają od nas krótkie zadanie kwalifikacyjne.
PHPers to otwarte, darmowe spotkania dla programistów PHP (ale zapraszamy oczywiście wszystkich), chcących poszerzyć swoje horyzonty. Na spotkaniach prezentujemy wykłady o PHP, ale też i o całym ekosystemie, jaki otacza aplikacje pisane w tym języku.