Dates in 2018

February 07, 2018

Domain-Driven Design (DDD) has become a major trend, maybe even a buzzword. The idea of (more) collaboration between developers and domain experts, however, is not new, but has already been a part of the Agile Manifesto. To be honest, "agile" does not work very well in most companies. We will try to analyze why this is the case, and ponder the question whether DDD can fix that.

More details

February 13, 2018

In an API driven world, being and staying reachable is a crucial success factor. And while, of course, misbehaving client applications and users could be dealt with by simply adding more servers and thus making your (cloud) provider happy, restricting the API access to reasonable rates may be a more cost efficient way. Learn how to limit access rates to your API without changing a single line of backend code!

More details

February 28, 2018

Viele einfache und automatisierte Tests an der Basis, wenige komplexe und vielleicht sogar manuelle Tests an der Spitze: so sieht eine Testpyramide aus. Zumindest in der Theorie, die Praxis sieht in vielen Projekten ein wenig anders aus. Schließlich kostet Unit Tests schreiben ja erst mal viel Zeit und damit Geld, oder? In diesem Vortrag erfahrt ihr, wie ihr das mit dem Testen in der Praxis sinnvoll und richtig macht und worauf es wirklich ankommt.

More details

March 02, 2018

Der Workshop richtet sich an Software-Entwickler, die bereits Erfahrungen mit dem Einsatz von PHP haben. Aufgrund der hohen Informationsdichte werden in diesem Workshop keine Praxisübungen durchgeführt. Sie benötigen für den Workshop keinen Laptop. Neben zahlreichen kleineren Neuerungen, dank derer PHP 7 im Entwickleralltag einfach mehr Spaß macht, lernen Sie die wichtigsten beiden neuen Features kennen: das um Scalar Type Declarations und Return Type Declarations erweiterte Typsystem sowie die verbesserte Behandlung von Fehlern. Sie erfahren, mit welchen Test- und Migrationsstrategien Sie Ihre Anwendung am besten für PHP 7 vorbereiten und welche Werkzeuge Ihnen dabei helfen. Wir erläutern auch, welche (veralteten) Code-Konstrukte in PHP 7 nicht mehr funktionieren und welche Klippen Sie umschiffen müssen, damit auch ältere Anwendungen problemlos unter PHP 7 laufen. Schließlich zeigen wir, wie eine zeitgemäße Systemarchitektur für eine PHP 7-Anwendung aussieht und wie Sie das Deployment ihrer Software gestalten können. Wir gehen auch der Frage nach, wie man die Aktualisierung auf PHP 7 Vorgesetzten oder Kunden vermitteln kann.

More details

March 07, 2018

Gratulation! Du hast Deinen Legacy-Monolithen erfolgreich abgelöst. Und zwar nicht durch einen verteilten Monolithen aus Microservices, die alle von einander abhängen, sondern durch in sich geschlossene Systeme (Self-Contained Systems), die zwar miteinander kollaborieren, sich aber keine Infrastruktur teilen. Nun gilt es, nur noch eine Frage zu beantworten: wie testest Du Deine neue Software? In diesem Vortrag erfährst Du die Antwort!

More details

Domain-Driven Design (DDD) ist mindestens zu einem Trend, wenn nicht sogar zu einem Buzzword geworden. Dass Entwickler (mehr) mit Fachexperten zusammenarbeiten sollten, ist allerdings nicht neu, sondern steht so schon im agilen Manifest. Nun funktioniert "agil" in den meisten Unternehmen nicht besonders gut, wenn man ehrlich ist. Wir analysieren, warum das so ist, und gehen der Frage nach, ob DDD das reparieren kann.

More details

March 20, 2018

Domain-Driven Design (DDD) has become a major trend, maybe even a buzzword. The idea of (more) collaboration between developers and domain experts, however, is not new, but has already been a part of the Agile Manifesto. To be honest, "agile" does not work very well in most companies. We will try to analyze why this is the case, and ponder the question whether DDD can fix that.

More details

April 05, 2018

Congratulations, you successfully replaced your legacy monolith. And not just with a distributed monolith comprised of microservices that depend on each other, but rather with an assembly of self-contained systems that do not share infrastructure. There is just one question left to answer: how do you test an application that consists of self-contained systems? Come to this meetup and learn the answer!

More details

April 14, 2018

Congratulations! You finally managed to convince the business that there really is no way to add this important new feature to the old legacy code base without causing major disruptions. But where to go from here? Completely rewriting the old monolithic application that does a gazillion things from scratch may seem tempting but is a gigantic effort with an unforeseeable outcome. Discover a way out of legacy hell by learning about architectural patterns as well as concrete technical solutions that enable you to gradually move functionality into new software components without the impediments of a full rewrite.

More details

May 03, 2018

Wer sicher sein will, dass Software richtig funktioniert, muss sie laufend testen. Das kann man entweder immer wieder manuell tun und entsprechende Kosten in Kauf nehmen, oder man automatisiert die Tests. Die Teilnehmer dieses Workshops lernen, wie sie das Werkzeug PHPUnit, den Standard für Testautomatisierung in der PHP-Welt, in ihren Entwicklungsprozess integrieren.

More details

May 27, 2018

If you want to be sure that your software works correctly then you need to continuously test it. Automated tests save you from pressing F5 in the browser all the time as well as from using debug statements such as var_dump() in your code. They are also cheaper than manual tests and easier to implement than you may think. How do I test my code with as little effort as possible? How do I execute as few lines of code as possible to test what I am really interested in? And what does this have to do with clean code? Attendees of this session will learn why they should include PHPUnit into their set of development tools.

More details

June 04, 2018

Event Storming is an emerging group modeling technique using sticky notes and verbal communication that is not only extremely efficient, but also easy to learn, and fun to do. This workshop introduces you to Event Storming with a strong focus on process design. Rather than talking a lot of theory, we will quickly dive into a group exercise and start modeling a real-life business problem, which will lead to valuable insights and is likely to spark off a lot of interesting discussions. We will not stop there, however, but also turn the model into working PHP code using Domain-Driven Design techniques and patterns, so bring your laptop with a working PHP environment. To conclude the day, we will demonstrate how to integrate the code with your favorite framework. This workshop might forever change the way you write code, so do not miss out on it.

More details

No matter how experienced you are as a developer: you can always improve. This workshop teaches advanced coding techniques through live coding. First up, we will solve some interesting coding problems that the audience has defined (it's only live if nobody knows the problem beforehand!). In the second segment, we will write code in a test-driven fashion. In the afternoon, it is your turn to write code. You will work on an interesting non-trivial coding exercise while being individually coached by the trainer. It's your choice whether you want to try test-driven development, write code first, then tests, or write no tests at all. The latter, however, might earn you some angry looks from the trainer ;-) We will touch on domain-driven design, test-driven development, clean code and SOLID principles, and might even throw in a few design patterns. Every question will be answered! Make sure to bring a laptop with your favourite development environment (current version of PHP, an IDE, and PHPUnit). Attendees should have a good working knowledge of PHP, at least basic OOP skills, and be familiar with the basics of PHPUnit. No frameworks or other third-party code will be needed.

More details

June 05, 2018

Developers need tools to be productive. In this session, Sebastian Bergmann presents an overview of the tools every PHP developer needs to know. For instance, we will have a look at dephpend, php-cs-fixer, phpstan, phan, and PHPUnit. Tools are not an end unto themselves, though. Therefore we will also discuss how these tools fit into your development process.

More details

When introduced in PHP, namespaces where seen as a mere convenience: shorter class names, yet no danger of collisions. Focusing on technicalities, strict rules like PSR-0 or PSR-4 were established to define how namespaces are to be structured and mapped into a directory layout. Since then, developers blindly follow these rules, ignoring the original concept of namespaces and the benefits they can offer. It’s time to change that.

More details

Congratulations, you successfully replaced your legacy monolith. And not just with a distributed monolith comprised of microservices that depend on each other, but rather with an assembly of self-contained systems that do not share infrastructure. There is just one question left to answer: how do you test an application that consists of self-contained systems? Come to this session and learn the answer!

More details

Powerful load balancer and revese proxy, classic webserver or flexible gateway to PHP-FPM, the NGINX web server software is on its way to becoming the de-facto standard for high performance web serving. But how to configure all these powerful features? Single-Sign On, Request Chaining, Dynamic Backend Selection and more: this session will show configuration tips for beginners, tweaks for experts, and Lua scripting for the crazy!

More details

Command/Query Responsibility Segregation (CQRS) and Event Sourcing might become new buzzwords in the PHP community. But what exactly is all the fuzz about, and should you care? This talk provides a comprehensive introduction, and will enable you to decide whether CQRS and Event Sourcing might be the right choice for you.

More details

June 06, 2018

Design Patterns are blueprints for common problems. Knowing patterns and being able to use them will help you to writte better code faster. In addition, once you are familiar with certain patterns, you will also spot them in other people's code. Last but not least, patterns are a common language for developers that will improve communication in your team. We will introduce five design patterns (Command, Strategy, Factory, Template Method, and Chain of Responsibility) every web developer should know and use. We will show example code, and discuss when and where to use each pattern.

More details

The FastCGI Process Manager (PHP-FPM) evolved from a third-party patch to the de-facto standard for running web applications with PHP. By default, though, the configuration shipped with most distributions is designed for minimal resource consumption. And while production servers can operate using these settings even under relatively high load without problems for a while, getting the most out of FPM requires some tuning. Preparing the PHP stack for high load situations and monitoring the performance, optimizing the runtime for specific types of requests, or hardening the security of your environment – there is much to consider.

More details

Was macht sauberen Code aus? Wie wird Code richtig gut? Und wie schreibt man richtig guten Code? In diesem Workshop lernt Ihr das nicht nur, sondern Ihr könnt es auch direkt in die Praxis umsetzen! Am Vormittag demonstriert Sebastian Bergmann den Einsatz von Domain-Driven Design und Test-Driven Development, natürlich nicht ohne auch über Themen wie Clean Code oder die SOLID-Prinzipien zu sprechen. Am Nachmittag arbeitet Ihr in Paaren und setzt das Gelernte in die Praxis um. Wir schließen den Tag ab mit einer Review-Runde, in der Ihr Feedback zu Eurem Code bekommt. Um von diesem Workshop wirklich profitieren zu können, bringst Du bitte Dein eigenes Laptop mit Deiner gewohnten Entwicklungsumgebung mit. Neben IDE (oder Texteditor) brauchst Du eine aktuelle Version von PHP und PHPUnit. Frameworks oder Third-Party-Code wird nicht benötigt.

More details

June 07, 2018

Vom PHP-Projekt gibt es aktuell nur für PHP 7.1 sowie PHP 7.2 Bugfixes und im Dezember endet der Security Support für PHP 5.6 und PHP 7.0. Höchste Zeit also, sich einmal anzuschauen, was beim Upgrade auf aktuelle PHP-Version zu beachten ist. In diesem Vortrag lernt Ihr unter anderem, was man schon heute über PHP 7.3 sowie PHP 8 wissen kann und wie man sich darauf vorbereitet, damit einen die Änderungen später nicht unvorbereitet erwischen.

More details

September 26, 2018

If you want to be sure that your software works correctly then you need to continuously test it. Automated tests save you from pressing F5 in the browser all the time as well as from using debug statements such as var_dump() in your code. They are also cheaper than manual tests and easier to implement than you may think. The attendees of this full-day workshop will learn how to write and execute tests as well as how to integrate automated tests into their development process.

More details

September 28, 2018

Join Sebastian Bergmann, the creator of PHPUnit, to learn how PHPUnit works, why it works like that, why he wishes it did not work like that, and what he is doing about it.

More details