Dzień 1

A complex ORM… faster than raw SQL?

Marco Pivetta
Complex applications are never easy to build and maintain; add performance to the mix and you will have a huge problem! What if we could get very fast applications without sacrificing good abstraction? We will focus on the hazards affecting PHP OLTP application performance, and on particular features of Doctrine ORM that will improve it. Also, we will try and see how we can reverse-engineer these features to build robust, scalable and clean software.

Dziwne…. u nas działa

Robert Ruszała, Bartosz Skwarczek, CEO G2A.com
Prezentacja firmy G2A.COM, nasz sukces, co robimy, jak robimy ‘od kuchni’, techniki dostarczania aplikacji poprzez Continuous Delivery, Continuous Integration, wykorzystywane narzędzia, metodyka pracy, wyzwania oraz sukcesy.

Przyspieszenie Symfony2 na przykładzie ZnanyLekarz.pl

Bartek Kuleszewicz
Opowiem jak w kilku prostych krokach udało się przyspieszyć Symfony2 w projekcie, który zawiera 164 bundle, 37 tysięcy comitów oraz 3 miliony linii kodu. Serwisy grupy DocPlanner.com (w Polsce ZnanyLekarz.pl) odwiedza miesięcznie 3 miliony użytkowników w 25 krajach, umawiając łącznie 155 tysięcy wizyt. Poprowadzi Bartek Kuleszewicz

OLX pod maską

Łukasz Szymański
Opowiem o tym jak zmieniała się struktura i organizacja naszego kodu, oraz w jaki sposób walczymy z legacy code. Poznacie technologie jakie wykorzystujemy, statystyki i nasze wnioski odnośnie pewnych rozwiązań. Dowiecie się jak wygląda OLX pod maską.

Docker & PHP – development and deployment

Szymon Skórczyński
Hasło „Docker” stało się ostatnio jednym z najgorętszych w środowisku programistów aplikacji webowych. Od ponad roku używam Dockera do rozwoju i wdrażania kilku aplikacji PHP-owych. Miałem okazję przetestować szereg rozwiązań i podejść, dzięki czemu opracowałem swój własny zestaw najlepszych praktyk, którymi chciałbym się z Wami podzielić.
Dlaczego Docker jest tak popularny? Czy trudno się go używa? Jak wykorzystać go do tworzenia aplikacji PHP-owych i wdrażania ich w chmurę? Jakie są zagrożenia związane z Dockerem? Czy warto z niego korzystać? Jeśli zastanawiałeś się kiedyś chociaż nad jednym z tych pytań, to ta prezentacja powinna Cię zaciekawić.

PSR-7 – the story of HTTP standard

Kacper Gunia, Mariusz Gil
Potrzeba standardowego podejścia do obsługi i interpretacji pary Request i Response była w społeczności od dawna. Każdy framework wprowadzał swoje specyficzne rozwiązanie co powodowało rozbicie społeczności i debaty które podejście jest lepsze i powinno być powszechnie stosowane. Od 2012 osoby skupione wokół PHP-FIG rozmawiały na temat standardu którym mogłaby posługiwać się społeczność i wreszcie po długich debatach w maju 2015 światło dzienne ujrzał PSR-7. Pytanie tylko co to dla nas, deweloperów oznacza? W trakcie prezentacji przyjrzymy się jak korzystać z nowej rekomendacji, dlaczego i w jaki sposób powinniśmy ją wykorzystywać. Odpowiemy na pytanie jakie są jej zalety, w jaki sposób może nam ułatwić życie i które frameworki oraz biblioteki już teraz oferują wsparcie dla standardu.

Dzień 2

Principles of PHP Package Design

Matthias Noback
With many great tools available for sharing packages of PHP code, it is now up to you as a developer to design these packages well. You have to decide what to put in a package, when to split a package and on what other packages you can safely depend.
You will learn how to make good decisions about your package design and release reliable, highly usable and therefore highly esteemed packages of PHP code.

PHP7 w praktyce

Leszek Krupiński
Na wykładzie nie będę opowiadał “co nowego w PHP7” – to wszyscy wiedzą. Zamiast tego chcę pokazać jak wykorzystać nowe możliwości, co dobrego one dają, i jakich zmian będą wymagać stare skrypty, aby mogły działać na nowej wersji interpretera

Symfony2 at BlaBlaCar

Benjamin de Bernardi, Olivier Dolbeau
3 years of work with 25 developers, 3.000 classes, 325.000 LOC: Symfony2 is more than ever present at BlaBlaCar. I would like to show you our website, its strengths and weaknesses, our most beautiful success and… our most extraordinary failures! I would like to apologise for all horrors which will be mentioned, all the crappy code which will be shown and the american happy ending! Note to organizers: I already gave this talk 2 years ago. You have the link in files. :) This one is like the second episode of the series but I would like to make it more technical, focusing on what we’ve done to handle the 20M users we have today.

Hexagonal architecture – message-oriented software design

Matthias Noback
Commands, events, queries – three types of messages that travel through your application. Some originate from the web, some from the command-line. Your application sends some of them to a database, or a message queue. What is the ideal infrastructure for an application to support this on-going stream of messages? What kind of architectural design fits best?
This talk provides answers to these questions: we take the hexagonal approach to software architecture. We look at messages, how they cross boundaries and how you can make steady communication lines between your application and other systems, like web browsers, terminals, databases and message queues. You will learn how to separate the technical aspects of these connections from the core behavior of your application by implementing design patterns like the command bus, and design principles like dependency inversion.

200K+ reasons why security is a must

Michelangelo van Dam
We all have focussed on best practices and code quality over the past years, but we seemed to forgot the most important aspect of the web: security. Security is a mindset that needs to be present from the earliest phase of any project as the complexity of an application can make it very hard to implement good and layered security features. This talk will cover the basic concepts of security and what you as a developer (or business) should do to prevent bad things from happening and what you need to do when you’ve been compromised.

Towards Modelling Processes

Mathias Verraes
Processes are at the heart of how many businesses operate. The processes are governed by policies, agreed upon with contracts, and guided by documents. In software systems on the other hand, we often bury the processes. There’s a domain model for sure, but it’s all about “things” and “operations on things”. We need better, more explicit, more visual temporal models, so we can reason about the effects of time.

Reactive Architecture

Marek Sokół
Na czym polega to nowoczesne podejście do tworzenia aplikacji. Dlaczego i w jaki sposób pomaga rozwiązać problemy złożonych aplikacji w nowoczesnych organizacjach IT.

Zarabiaj z Shoper® – AppStore i Bug Bounty

Michał Zając, Adrian Słowik
Shoper to platforma umożliwiająca uruchomienie własnego sklepu internetowego, z której korzysta ponad 10 tys. sprzedawców. Podczas prezentacji przedstawimy w jaki sposób możesz pomóc budować największą platformę ecommerce, tworząc aplikacje i dodatki lub łamiąc zabezpieczenia.

CQRS and Event Sourcing with PHP

Matthieu Moquet
Event Sourcing, Stream processing, CQRS: what are those buzzwords? How my app can benefit from it? This talk aims to clarify these concepts through examples in PHP, and see why this totally changes how to structure the data. We will see how to take full advantage of the philosophy of NoSQL to build a scalable & robust app which is will be easier to maintain.

PhpSpec 2 – jedyne narzędzie którego potrzebujesz by projektować aplikacje.

Kacper Gunia
Projektowanie aplikacji to trudny temat, a dobre projektowanie to rzemiosło którego uczymy się przez lata. Czy metodologie takie jak TDD/BDD mogą nam w tym pomóc i w zasadzie jaka jest między nimi różnica? Czy narzędzia są w stanie wesprzeć nas w tworzeniu oprogramowanie wysokiej jakości, które będzie proste w zrozumieniu, zmianie i utrzymaniu? Jak finalnie dostarczyć produkt który będzie robił to o co zostaliśmy poproszeni (i za co nam zapłacono)? Podczas wykładu odpowiem na te pytania wspierając się nowoczesnym frameworkiem Spec BDD – PhpSpec stworzonym by umożliwić projektowanie i tworzenie testowalnego oprogramowania wysokiej jakości.

Tworzenie aplikacji webowych dla biznesu w oparciu o platformę eDokumenty

Jacek Paszek
W ostatnich latach firmy zaczęły bardzo mocno poszukiwać webowych aplikacji, systemów BPM, DMS, CRM i innych rozwiązań wspierających ich biznes. Często dostarczane rozwiązania oparte są o frameworki dla stron www, które w dłuższej perspektywie nie wytrzymują zderzenia z zalewem setek funkcji wymaganych dla systemów informacyjnych (np. silnik workflow) oraz kwestiami User Experience. Z kolei zaawansowane kompletne systemy BPM bardzo często są ograniczone w zakresie możliwości ich modyfikacji i rozszerzania.
eDokumenty są platformą do budowy aplikacji biznesowych a jednocześnie zbiorem gotowych modułów i pakietów, które w wydajny sposób można łączyć i rozbudowywać.

Platforma oferuje zaawansowane API pozwalające na bezpieczne wprowadzanie i przetwarzanie danych zgodnie z modelem obiektowym dziedziny, oraz oddaje do dyspozycji wspaniały framework za pomocą którego można w kilkadziesiąt minut zbudować funkcjonalne rozwiązania dla klienta.
Utworzone przez deweloperów aplikacje można oferować w markecie do pobrania przez innych użytkowników posiadających licencje jak również możliwe jest udostępnianie specjalizowanych aplikacji w modelu abonamentowym za pomocą gotowego środowiska multitanantowego.
Zacznij zarabiać na tworzeniu aplikacji dla firm razem z systemem eDokumenty!

Jak stać się lepszym programistą

Jerzy Zawadzki
Na innych wykładach dowiecie się jak pisać lepszy kod. Ale pisanie czystego kodu, znajomość i przestrzeganie zasad SOLID, DDD, BDD czy TDD nie wystarczy, by być dobrym programistą. Opowiem, co tak naprawdę składa się na jakość oprogramowania, postaram się Was przekonać do bardziej pragmatycznego podejścia do jego tworzenia oraz pokażę proste zasady, które sprawią, że każdy Wasz projekt będzie udany. Powiem też, dlaczego nie należy komentować kodu…

Twelve-factor App

Tomasz Skręt
Metodologia twelve-factor wyznacza standardy, za pomocą których można oceniać i charakteryzować nowoczesne aplikacje. W prezentacji opowiem jak, stosując się do prostych 12 zasad, tworzyć aplikacje, które są skalowalne, łatwe w utrzymaniu i rozwijaniu.

Ewolucja architektury w produkcie Getresponse API

Michal Giergielewicz
Każdy kod ewoluuje. Duży produkt zaczyna jako małe niewinne MVP, by powoli i (oby) iteracyjnie rozrastać się do ‘dorosłej’ postaci. Równocześnie ze wzrostem produktu od strony ‘ficzerów’ rośnie jego wewętrzna komplikacja. Powstaje architektura – czasem zła, czasem dobra. Nowe API Getresponse’a jest gdzieś w trakcie tej drogi, juz po kilku iteracjach, juz nie jako MVP. Chciałbym podzielić się doświadczeniem z procesu budowania architektury naszego API, wyboru i implementacji rozwiązań architektonicznych oraz sposobu mierzenia efektywności naszych decyzji.

Aplikacje PHP w MS Azure. Problemy i ciekawe rozwiązania na przykładach wdrożeń.

Roman Baluta

Driving Design through Examples

Ciaran McNulty
Modelling by Example is a set of practices that combine BDD (Behaviour Driven Development) and DDD (Domain Driven Design) techniques to creat a workflow that directly drives code from a starting point of user requirements. We will see how a simple feature can be defined via conversation with stakeholders, captured as automatable requirements, and expressed directly in the object model using tools such as Behat and PhpSpec.

Doctrine ORM Good Practices and Tricks

Marco Pivetta
Doctrine ORM is a complex tool that enables development of very advanced applications, but are you actually using it correctly? What if you have been using the ORM incorrectly or in an inefficient way? We are going to inspect the advantages and disadvantages of various approaches to application design with this Data mapper, and come up with a set of best practices that will be useful for your projects.

Jak wciągnąć eksperta domenowego w wir modelowania – lingwistyczne i wizualne techniki DDD

Sławomir Sobótka
Eksperci domenowi, to osoby, które wiedzą jak i dlaczego działa dany biznes. Zwykle nie są to użytkownicy i operatorzy systemu. Nie są to również klienci, którzy chcą po prostu zarobić. To wydaje się zbyt proste, ale o ile to możliwe najbardziej, najbardziej efektywnym sposobem komunikacji z ekspertami jest spotkanie twarzą w twarz, przy kartce papieru. Podczas prezentacji przedstawię metodykę Modeling Whirlpool wraz z wszystkimi jej rolami, fazami i technikami: – wizualizacje: szukanie metafor wizualnych ze świata biznesu – techniki lingwistyczne: szukanie podmiotów i orzeczeń – logiczne: szukanie niezmienników, analiza zmian w use case Całość jest implementowalna jeden do jednego przy pomocy Building Blocks DDD.

Clean Code – PHP?

Michal Giergielewicz
Clean Code to hasło szturmem zdobywające bastiony IT na całym świecie. Chciałem opowiedzieć o drodze jaką przeszedłem w celu zrozumienia jakie jest sedno tego podejścia i pokazać na przykładzie jak może wyglądać aplikacja napisana w PHP z użyciem opisanych w Clean Code zasad.

Dzień 3

Large-scale websites performance optimisation tricks. Allegiantair case study

Georgiana Gligor
Practical lessons learned while revamping the allegiantair.com website to resist huge Black Friday and Cyber Monday traffic values. Using HTTP status codes and PHP cleverly, we have made parallel requests possible, so that the user experience is greatly enhanced, and we pre-cache resource-consuming user searches. All on a solid Symfony2 foundation.

Why Your Test Suite Sucks

Ciaran McNulty
Many teams adopt TDD attracted by the promise of a more productive workflow, fewer regressions and higher code quality. Sometimes this goes wrong and these benefits do not materialise, despite a healthy-seeming test suite. In this talk we will look at what the common pitfalls of testing are, why teams fall into these traps, and they can dig themselves out.

Logs hunting!

Olivier Dolbeau
Logs are really important to know what happen once your application is in production! In this talk we will see which logs matters, how we can track them and how we can exploit them. Armed with Monolog, Elasticsearch, Logstash & Kibana (ELK) we will see how we can hunt all relevant logs on our platform!

A Walk Through System Layers

Norbert Orzechowicz
W przeciągu ostatnich kilku lat PHP przeżyło gwałtowny rozwój samego języka, jak i świadomości programistów. Skrypty, które do tej pory nazywaliśmy stronami internetowymi, wyrosły na poważne systemy, co zmusiło programistów do pochylenia się nad architekturą umożliwiającą ich rozwój i wieloletnie utrzymanie. W tym celu aplikacje zostały podzielone na warstwy, a rzeczy, które do tej pory traktowaliśmy priorytetowo, jak na przykład bazy danych stały się detalami implementacyjnymi. W czasie prezentacji przejdę od domeny, poprzez aplikację do interfejsu użytkownika wspartego infrastrukturą. Opowiem o procesie powstawania każdej z tych warstw, oraz ich przeznaczeniu, a to wszystko na przykładzie prawdziwej aplikacji stworzonej w oparciu o DDD, BDD i TDD. Wspomnę też dlaczego nie wybrałem frameworka Laravel i jednocześnie dlaczego go nie odrzuciłem.

Redis

Sebastian Grodzicki
To nie będzie kolejna prezentacja “getting started” żywcem wzięta z dokumentacji. Pokażę moc drzemiącą w tym narzędziu na prawdziwych przykładach i powiem Ci dlaczego MUSISZ zacząć korzystać z Redisa oraz dlaczego Memcached przy nim wymięka.

MySQL under the siege

Mariusz Gil
Istnieje bardzo wiele powodów, dla których baza danych MySQL jest rozwiązaniem pierwszego wyboru dla aplikacji webowych. To szybki, popularny i całkiem nieźle udokumentowany system RDBMS, na dodatek świetnie znany wśród administratorów IT. Jednak w bardzo wielu przypadkach baza ta, jak również i każda inna, staje się jednocześnie pierwszym wąskim gardłem. Nieindeksowane zapytania, tabele przeciążone zbyt dużą liczbą niepoprawnie założonych indeksów, nieoptymalna konstrukcja schematu tabel lub poszczególnych zapytań, to tylko początek większych problemów… W trakcie tej sesji przedstawię techniki i use-case’y projektowania wydajnych zapytań i schematów baz danych, identyfikacji wąskich gardeł i sprawienia, aby MySQL był naprawdę szybki pod (niemal) dowolną aplikacją PHP. Zapoznamy się także z możliwościami oferowanymi przez forki MySQL: MariaDB, Percona Server, Drizzle czy WebScaleSQL, a także zarysuję techniki, jakie wykorzystywaliśmy przy klastrach MySQL o wielkości od 1 do ponad 100 instancji.

HTTP Cache

Michał Pipa
Wydajność aplikacji webowych od zawsze była bardzo ważnym zagadnieniem. Jednym z najskuteczniejszych sposobów na poprawienie wydajności jest poprawne użycie cache protokołu HTTP. Omówię zarówno standardowy cache HTTP, jak i cache fragmentów stron z użyciem specyfikacji ESI oraz reverse proxy.

Code review – jak krytykować

Maciej Iwanowski
Inspekcja kodu, to jeden z najważniejszych etapów rozwoju oprogramowania. Pomaga rozwijać i budować zespół, ma kolosalny wpływ na jakość oprogramowania, a jednocześnie łatwo może stać się przeszkodą albo przykrym obowiązkiem. Chcę powiedzieć o tym co robić powinniśmy, czego robić nie powinniśmy i jakich liczb się trzymać przygotowując kod do przeglądu. PS. Prezentacja może zostać przedstawiona zarówno po polsku jak i angielsku

Podobne artykuły