Termine in 2019

17.01.2019

Decomposing a problem into several microservices is difficult. Too many have failed and ended up with a distributed monolith. Let us take a step back and understand when and why we need to create a microservice, and where we should put the boundaries. Challenging some established practices, we will take a fresh look at different integration strategies, and come up with a simplified approach that hopefully gives us better results.

Weiter zum Vortrag

18.01.2019

Mel Conway's famous law states that organizations designing systems are constrained to produce systems that mimic the communication structures of the organizations. Digitalization, however, changes organizations fundamentally, for example through the introduction of agile methods, more autonomy, and a transition from management to leadership. We will discuss how this affects the way we should model software in Domain-Driven Design.

Weiter zum Vortrag

15.02.2019

Eigentlich wollte Rasmus Lerdorf vor 24 Jahren nur die Besucher seiner Webseite zählen. Wie kam es dazu, dass heute circa 80 Prozent aller Webseiten PHP verwenden? Wie wird PHP weiterentwickelt? Wie kann man zu PHP beitragen? Was können Entwicklerinnen und Entwickler von PHP 7.4 und PHP 8 erwarten? Diese und andere Fragen beantwortet der Vortrag von Sebastian Bergmann, der seit fast 20 Jahren zur Professionalisierung der Softwareentwicklung mit PHP beiträgt.

Weiter zum Vortrag

21.02.2019

Die richtige Software entwickeln. Das Richtige testen. Zum richtigen Zeitpunkt. Mit dem passenden Werkzeug sowie den richtigen Kniffen, wie man es effektiv und effizient einsetzt. In diesem Vortrag gehen wir unter anderem den folgenden Fragen nach: Was will ich testen? In welchem Rahmen muss ich es testen? Wie formuliere ich den Test?

Weiter zum Vortrag

14.03.2019

Getter methods retrieve state, while setter methods change state. We all know that. HTTP GET requests retrieve state, while HTTP POST requests change state. We all know that. Then why have we built so many applications with a single object model, blatantly ignoring this separation? Turns out that creating a separate model for reading and writing makes a lot of sense. But how can we introduce this concept into legacy applications? This presentation shows how to do it, and what is in it for you.

Weiter zum Vortrag

20.03.2019

Entgegen landläufiger Meinung ist kein Code untestbar. Sicherlich macht es mehr Spass, Unit Tests für sauberen, nach SOLID-Prinzipien erstellten Code zu schreiben. Aber was ist mit Legacy Code, der mit zahlreichen Abhängigkeiten aufwartet und sich nicht um die Trennung der Verantwortlichkeiten schert? Sebastian Bergmann zeigt, dass es möglich ist, Tests selbst für den miserabelsten Code zu schreiben. Anhand von Beispielen aus der Praxis zeigt er das Warum, Was, Wie und Wann des Testens von Software.

Weiter zum Vortrag

21.03.2019

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.

Weiter zum Vortrag

11.05.2019

For 160 million years, dinosaurs ruled the world. Then, pretty quickly, and with very few exceptions, they became extinct. Surely, there is something to learn here that will help us to improve the architecture of our software systems. We will approximate the topic by trying to answer two pivotal questions: what would Charles Darwin say about microservices? And: is COBOL still relevant?

Weiter zum Vortrag

Before the start of development comes the gathering of requirements. This daunting task with the seemingly endless discussions. Followed by the creation of epics, user stories or tickets which will change over and over again - even when development has already begun. We can do better than this: With Event Storming, an unlimited modeling space and all the key stakeholder in the same room. Let’s get started with efficient Domain-Driven Design!

Weiter zum Vortrag

03.06.2019

Performance is a key success factor for web shops. Over the years, we have gotten pretty good at delivering mostly static content, usually through a combination of heavy caching and the use reverse proxies. Delivering a highly personalized shopping experience, however, is a different beast. This talk goes in depth on how personalization challenges established best practices to speed up web shops, and shows how applying CQRS ideas can help us solve the problem.

Weiter zum Vortrag

What makes up clean code? How does code turn out well? And how do you write really good code? In this workshop you will not only learn the answers to these questions. You will have the opportunity to immediately apply what you learn in a practical exercise. First, we will show how Domain-Driven Design and Test-Driven Development can be used to solve problems. Needless to say that we will cover topics such as Clean Code and SOLID along the way. Coached by the trainers, you will then work in pairs on additional features for the software we developed during the live coding. We will round up the day with a review where you will get feedback on the code you created. You will need to bring your own laptop to really benefit from this workshop. A recent version of PHP 7 and PHPUnit as well as your IDE of choice are all that is needed. No frameworks or third-party code are required.

Weiter zum Vortrag

04.06.2019

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!

Weiter zum Vortrag

So you must be the worst developer in the house, because you are the only one who does not understand that piece of elaborate, complex, carefully obfuscated code? Well, after some asking around, it turns out that nobody has a clue what that code does, or why it even exists. There might be opinions, but unfortunately there is more than one, so does the loudest developer’s voice "win"? We will analyze where code that nobody understands comes from, understand why we cannot accept it, and discuss why you are not the worst developer admitting that you do not understand a piece of code, but may in fact be one of the smartest.

Weiter zum Vortrag

In 2018 the W3C released the candidate recommendation for the new Web Authentication Standard "WebAuthn". Already supported by all major browser vendors, it strives to make passwords as well as phishing a thing of the past. Given that haveibeenpwned.com’s database contains over 500 million stolen credentials, the switch away from passwords should happen sooner rather than later. Are you prepared to support the new means of authentication? Get ready for the future and learn what WebAuthn is about, how it works, and how to leverage its potential for your site today using PHP and JavaScript.

Weiter zum Vortrag

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.

Weiter zum Vortrag

05.06.2019

You are still on PHP 5? If not, this talk is not for you. What exactly keeps you from deploying PHP 7 to production? If you already know, this talk will provide you with proven tactics to get your application ready for PHP 7 and migrate successfully. If you are not sure, what the shopstopper really is, you will learn how to analyze the status quo, develop a plan on how to migrate and sell the whole project to your boss or customer.

Weiter zum Vortrag

While PHPUnit is not difficult to set up and writing tests with it is easy, you will get better results and save development time if you know the tips and tricks to leverage PHPUnit more effectively. This session, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your unit testing effort is efficiently implemented.

Weiter zum Vortrag

06.06.2019

In an event-driven world, asynchronous processing at scale is essential to guarantee a rapid execution of jobs. And seemingly impossible to do without a big tech stack – including bleeding edge frameworks, lots of tools, and a complex infrastructure to run it all. In this session we’ll showcase how simple, plain, and easy an asynchronous processing stack can be set up and implemented, using well-known, almost boring technology.

Weiter zum Vortrag

07.06.2019

Domain-Driven Design, CQRS, and Event Sourcing. Big words that obviously require an equally big tech stack to be applied – with bleeding edge frameworks, lots of tools, and a complex infrastructure to run it all. Or not? In this workshop, we will create a solid, event-sourced web application from scratch. We will not rely on any frameworks or libraries to really get to the bottom of things. Make sure to bring your laptop!

Weiter zum Vortrag

27.06.2019

Die richtige Software entwickeln. Das Richtige testen. Zum richtigen Zeitpunkt. Mit dem passenden Werkzeug sowie den richtigen Kniffen, wie man es effektiv und effizient einsetzt. In diesem Vortrag gehen wir unter anderem den folgenden Fragen nach: Was will ich testen? In welchem Rahmen muss ich es testen? Wie formuliere ich den Test?

Weiter zum Vortrag

03.07.2019

Es ist geschafft: alle Entwickler haben sich zu Clean Code und Craftsmanship committed, das Manifest unterschrieben und tragen bunte Armbändchen. Die Qualität der Software steigt (was auch immer das jetzt genau bedeuten mag), in den Pull Requests finden keine Grundsatzdiskussionen mehr statt und dank Pair Programming gibt es weniger Wissensinseln. Aber: trotz grüner Tests und fröhlicher Entwickler sind die Anwender noch immer nicht nicht zufrieden. Und warum sind unsere Entwicklungskosten noch immer so hoch und die Velocity zu niedrig? In diesem Vortrag, der auf Praxiserfahrung aus über 25 Jahren Beratung und Team-Coaching in der Software-Entwicklung basiert, erfahren Sie, wie Sie nicht nur Software richtig schreiben, sondern auch die richtige Software schreiben.

Weiter zum Vortrag

05.07.2019

Konzepte wie Domain-Driven Design, eventgetriebene Architekturen, Command/Query Responsibility Segregation (CQRS) und Event Sourcing haben in letzter Zeit viele Diskussionen ausgelöst. Es scheint fast, dass man kein neues Projekt anfangen darf, ohneyx zumindest ein paar von diesen Buzzwords mit einzubauen. Oder gleich das ganze Paket? Schließlich hängen die ganzen Konzepte ja sehr eng zusammen. Nach einer kompakten Einführung in den praktischen Nutzen und die Anwendungsgebiete von DDD, Events und CQRS sehen wir uns jenseits von Buzzwords und technischem Overkill an, wo und wie man die genannten Konzepte in aktuellen Projekten und für Legacy-Anwendungen richtig dosiert und gewinnbringend einsetzen kann. Wir lernen die wichtigsten Prinzipien des Domain-Driven Design als eine logische Fortsetzung von OOP und agilen Methoden kennen und diskutieren praxiserprobte Lösungsansätze für die synchrone und asynchrone Verarbeitung von Events und die Anwendung von CQRS-Prinzipien, mit denen Erweiterungen und Änderungen an vorhandenen Anwendungen viel einfacher umsetzbar sind, als sie das bisher waren. Wir zeigen Codebeispiele in PHP, die aber auch für Entwickler mit Kenntnissen in anderen Programmiersprachen gut zugänglich sind. Da die zur Verfügung stehende Zeit beschränkt ist, ist in diesem Workshop keine Programmierung am eigenen Rechner vorgesehen.

Weiter zum Vortrag

10.07.2019

PHP war schon immer so verbreitet wie gleichzeitig umstritten. Doch in den letzten Jahren hat sich etwas verändert: Suchten sich Entwickler früher einen Job wegen PHP aus, so kommen sie heute trotz PHP. Marcel Normann, Entwicklungsleiter der WhereGroup, präsentiert als Einleitung einen kurzen Rückblick auf über 20 Jahre PHP-Geschichte und wagt den Versuch, in Statistiken Hinweise zur Zukunftsfähigkeit von PHP zu finden. Anschließend geht es weiter mit Sebastian Bergmann, einem PHP-Entwickler der ersten Stunde in Deutschland: Er berichtet, wie weit die Entwicklung von PHP 8.0 vorangeschritten ist und welche Features wir zu erwarten haben. Im Anschluss an die Vorträge wollen wir uns gemeinsam mit Euch auf die Suche nach einer Antwort auf die Frage machen, ob ein Entwickler heute noch PHP lernen sollte.

Weiter zum Vortrag

08.08.2019

Für eine effiziente Entwicklung von Software ist es unerlässlich, dass der abzubildende Prozess von allen Beteiligten verstanden wurde. Keine sonderliche Herausforderung, sollte man meinen. Oder doch? In der Praxis zeigt sich nämlich, dass viele Details eher unklar sind: Warum ist dieser Schritt hier überhaupt notwendig? Müsste der nicht vielleicht sogar früher erfolgen? Und was passiert überhaupt, wenn an dieser Stelle etwas schief geht? Event Storming für Process Modeling ist eine effektive Methode, um das Wissen über den abzubildenden Prozess und die daraus resultierenden Anforderungen sowohl für die Fachabteilung als auch für die Entwickler greifbar zu machen und in verständlicher Form aufzubereiten.

Weiter zum Vortrag

10.08.2019

Eigentlich wollte Rasmus Lerdorf vor 24 Jahren nur die Besucher seiner Webseite zählen. Wie kam es dazu, dass heute circa 80 Prozent aller Webseiten PHP verwenden? Wie wird PHP weiterentwickelt? Wie kann man zu PHP beitragen? Was können Entwicklerinnen und Entwickler von PHP 7.4 und PHP 8 erwarten? Diese und andere Fragen beantwortet der Vortrag von Sebastian Bergmann, der seit fast 20 Jahren zur Professionalisierung der Softwareentwicklung mit PHP beiträgt.

Weiter zum Vortrag

28.08.2019

It is not easy to write software that solves complex business problems. We all have learned that, some of us the hard way. Domain-Driven Design offers tools and methods to "tackle complexity in the heart of software". After a short introduction to DDD, drawing from Conway's Law and the Cynefin Framework, we will collaboratively model an interesting domain using Event Storming and Story Mapping. Then you will transform selected parts into code using the design patterns of DDD (Value Object, Entity, Aggregate, Repository, Factory, Service, and Domain Events). Further topics covered include Bounded Contexts, Strategic Design, and Hexagonal Architecture. To conclude the workshop, we will discuss the question: What about CRQS and Event Sourcing?

Weiter zum Vortrag

13.09.2019

Bestehende Systeme sind wertvoller Code, bei dem wir uns vor Änderungen fürchten. Das Fehlen von automatisierten Tests ist die häufigste Ursache dafür. Wie also umgehen mit Code, der nicht ausreichend getestet ist? Wir wollen Änderungen, die an vorhandenen Systemen vorgenommen werden müssen, schließlich nicht im Blindflug durchführen. In dieser Schulung lernt Ihr, wie Ihr Änderungen und Refactorings auch in bisher ungetestetem Code mit PHPUnit absichern könnt.

Weiter zum Vortrag

19.09.2019

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.

Weiter zum Vortrag

24.09.2019

Fachanwender sind keine Software-Designer. Und Entwickler sind keine Fachexperten. Aber wo kommen dann eigentlich die Features her, die in der Entwicklung umgesetzt werden sollen? Und warum dauert das immer alles so lange und ist dann auch noch so teuer? Wir setzen in diesem Workshop vor der eigentlichen Programmierung an und versuchen, den Prozess von der Idee zu einem schließlich in Code umsetzbaren (?) Feature zu verstehen und zu verbessern. Zwischen Conway's Law und Akzeptanztests untersuchen wir unter anderem die Unterschiede zwischen iterativer und inkrementeller Entwicklung. Wir sehen uns verschiedene Arbeits- und Visualisierungstechniken an, die uns helfen, Features zukünftig effizienter zu spezifizieren und zu planen. Der Workshop vermittelt anhand von praxisnahen Fallbeispielen einen Einblick in verschiedene Werkzeuge und Methodenbausteine und ermuntert dazu, sich aus diesem Baukasten ein eigenes, der jeweiligen Situation angemessenes Vorgehensmodell zusammenzustellen.

Weiter zum Vortrag

25.09.2019

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! Zunächst 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. Danach 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.

Weiter zum Vortrag

28.09.2019

It has been argued that Test-Driven Development bears the risk of losing the focus on business value. Domain-Driven Design is an approach to software development that puts a strong focus on business value. Combining ideas of Domain-Driven Design and Test-Driven Development leads to a formalized representation of the ubiquitous language through production code and tests. Sebastian Bergmann, creator of PHPUnit, and Stefan Priebsch, a proven expert on software architecture and design, will show how you this works in a live pair programming session.

Weiter zum Vortrag

29.09.2019

Currently, the PHP project actively supports PHP 7.2 and PHP 7.3. The security support for PHP 7.1 ends in December 2019. Now is the time to prepare for this year’s PHP 7.4 and plan for next year’s PHP 8. Attendees of this presentation will learn everything they need to know about PHP 7.4 and how to keep up with PHP’s development so that they will not be surprised, at least not in a bad way, when PHP 7.4 and PHP 8 come out.

Weiter zum Vortrag

Traditional content management systems conflate two diverse requirements into one single software: content creation and content delivery. This combined approach leads to complex systems that can hardly be optimized for either use case. This presentation will teach you how to plan and implement a two-stack CMS implementation, and show you what the benefits and drawbacks are.

Weiter zum Vortrag

09.10.2019

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! Zunächst 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. Danach 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.

Weiter zum Vortrag

10.10.2019

Verbesserungen an der Syntax von PHP wie die Einführung der skalaren Typen in PHP 7.0 oder die Unterstützung für die Deklarierung von Typen für Attribute in PHP 7.4 verändern die Art und Weise, wie PHP eingesetzt wird ebenso wie Verfügbarkeit von neuen Werkzeugen wie Psalm. In diesem Vortrag lernt Ihr, wie Ihr diese neuen Technologien einsetzt, um besser(e) Software zu entwickeln.

Weiter zum Vortrag

21.10.2019

Writing good code with automated tests does pay off, even more on the long run, when major changes to your software become necessary. In this workshop, we will introduce you to Test-Driven Development as it was meant to be. You will not only understand how TDD fundamentally challenges how you have thought about software to this day, but also experience the joy of the red-green-refactor cycle. Join Sebastian and Stefan on a journey that might forever change the way you think about code. And tests, for that matter. Make sure to bring your own laptop with a current PHP and PHPUnit version, there will be plenty of room for you to work on exercises while being individually coached by the trainers.

Weiter zum Vortrag

Domain-driven design (DDD), CQRS and event sourcing: Big words that obviously require an equally big tech stack to be applied – with bleeding edge frameworks, lots of tools, and a complex infrastructure to run it all. Or not? In this workshop, we will create a solid, event-sourced web application from scratch. We will not rely on any frameworks or libraries to really get to the bottom of things.

Weiter zum Vortrag

Currently, the PHP project actively supports PHP 7.2 and PHP 7.3. The security support for PHP 7.1 ends in December 2019. Now is the time to prepare for this year’s PHP 7.4 and plan for next year’s PHP 8. Attendees of this presentation will learn everything they need to know about PHP 7.4 and how to keep up with PHP’s development so that they will not be surprised, at least not in a bad way, when PHP 7.4 and PHP 8 come out.

Weiter zum Vortrag

Does your application rely on autoloading? Chances are, it does – given autoloading was introduced to PHP back with Version 5. While the original global function __autoload has long been deprecated, with PHP 7.4 the whole concept of autoloading becomes superfluous! This talk will introduce you to one of the many new features of the upcoming PHP version that is likely to change pretty much everything: How to load classes – and when? Or how to deploy new versions to production.

Weiter zum Vortrag

Does your application rely on autoloading? Chances are, it does – given autoloading was introduced to PHP back with Version 5. While the original global function __autoload has long been deprecated, with PHP 7.4 the whole concept of autoloading becomes superfluous! This talk will introduce you to one of the many new features of the upcoming PHP version that is likely to change pretty much everything: How to load classes – and when? Or how to deploy new versions to production.

Weiter zum Vortrag

Die Sirene tutet. Geordnete Reihen von einheitlich gekleideten Entwicklern strömen in die Software-Fabrik, um für weitere acht Stunden ihrer Arbeit nachzugehen. Wie immer wird sich auch am Ende dieser Schicht an der Laderampe eine planbare Menge von gleichförmigen und makellosen Computerprogrammen aufhäufen. Freilich wissen wir heute, dass die Erstellung von Software keine Serien- oder Massenfertigung ist, denn verschiedene Versuche, Software industriell herzustellen, sind – glücklicherweise – gescheitert. Dennoch: erinnert es nicht an Fließbandarbeit, wenn die Entwickler ihre Tickets abarbeiten? Und warum dauert das alles immer so lang? In diesem Vortrag bauen wir systematisch die typischen Barrieren in der Kommunikation zwischen Business und Entwicklern ab und öffenen den Raum für eine produktivere Zusammenarbeit mit besser planbaren Ergebnissen.

Weiter zum Vortrag

It is done: all developers have committed themselves to clean code and craftsmanship principles, they have signed the Agile Manifesto, and carry colored wristbands. The software quality is improving (whatever that exactly means), pull requests are no longer the reason for fundamental discussions, and thanks to pair programming, knowledge is spread more evenly. But despite green tests and happy developers, the users are still not satisfied. Why are development costs still so high, and is the velocity still so low? In addition to learning how to write software right, we must also learn to write the right software.

Weiter zum Vortrag

06.11.2019

Domain-Driven Design, CQRS and Event Sourcing. Big words that obviously require an equally big tech stack to be applied - with bleeding edge frameworks, lots of tools, and a complex infrastructure to run it all. Or not? In this workshop, we will create a solid, event-sourced web application from scratch. We will not rely on any framework or libraries to really get to the bottom of things. Make sure to bring your laptop!

Weiter zum Vortrag

07.11.2019

Die Sirene tutet. Geordnete Reihen von einheitlich gekleideten Entwicklern strömen in die Software-Fabrik, um für weitere acht Stunden ihrer Arbeit nachzugehen. Wie immer wird sich auch am Ende dieser Schicht an der Laderampe eine planbare Menge von gleichförmigen und makellosen Computerprogrammen aufhäufen. Freilich wissen wir heute, dass die Erstellung von Software keine Serien- oder Massenfertigung ist, denn verschiedene Versuche, Software industriell herzustellen, sind – glücklicherweise – gescheitert. Dennoch: erinnert es nicht an Fließbandarbeit, wenn die Entwickler ihre Tickets abarbeiten? Und warum dauert das alles immer so lang? In diesem Vortrag bauen wir systematisch die typischen Barrieren in der Kommunikation zwischen Business und Entwicklern ab und öffenen den Raum für eine produktivere Zusammenarbeit mit besser planbaren Ergebnissen.

Weiter zum Vortrag

When we do not want to use a real dependency in a (unit) test then we can replace it with a test double. PHPUnit as well as third-party libraries such a Prophecy or Mockery make it convenient to create these stubs, spies, or mocks. Maybe they make it too convenient? In this session presented by Sebastian Bergmann, the creator of PHPUnit, you will learn about the dangers of „overmocking“ as well as how to avoid them. Applying these learnings will lead to better code and tests that are more robust.

Weiter zum Vortrag

In 2018 the W3C released the candidate recommendation for the new Web Authentication Standard "WebAuthn". Already supported by all major browser vendors, it strives to make passwords as well as phishing a thing of the past. Given that haveibeenpwned.com’s database contains over 500 million stolen credentials, the switch away from passwords should happen sooner rather than later. Are you prepared to support the new means of authentication? Get ready for the future and learn what WebAuthn is about, how it works, and how to leverage its potential for your site today using PHP and JavaScript.

Weiter zum Vortrag

08.11.2019

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.

Weiter zum Vortrag

09.11.2019

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.

Weiter zum Vortrag