Termine in 2017

22.03.2017

For larger-scale software, building a distributed, event-driven system just makes sense. But how to get there? Usually, the status quo is a big, monolithic piece of legacy software that we just cannot ignore. From the viewpoint of a consultant who, for several years, has helped clients to move away from legacy systems (and thinking), this talk gives deep insights into challenges, solutions, and attempted solutions. We will discuss what has worked, and what did not work, and discuss lessons learned.

Weiter zum Vortrag

07.04.2017

Obwohl wir ans Testen "glauben" und "wissen", dass es beim Liefern besserer Qualität hilft, tun sich viele von uns schwer, Testen in ihren Arbeitsalltag zu integrieren. Warum? Wie bekommen wir technische und nicht-technische Projektbeteiligte ins selbe Boot, wenn es darum geht, gute Software zu entwickeln? Und wie beteiligen wir sie aktiv an diesem Prozess? In diesem Vortrag diskutieren Sebastian Bergmann, Autor von PHPUnit, und Jeffrey A. "jam" McGuire, Evangelist bei Acquia, wie das Einführen gefolgt von konsequenter Anwendung von Testmaßnahmen dazu führt, dass die Softwareentwicklung bessere Ergebnisse bei niedrigeren Gesamtkosten liefert und wie sich die Vorteile des Testens über die Zeit entfalten.

Weiter zum Vortrag

22.05.2017

This training covers the deployment of PHP applications, be it on a staging server, a production server, or a farm of production servers. You will learn how to set up a modern stack for operating PHP applications using NGINX, PHP-FPM, and FastCGI. The benefits of this setup include the ability to use different configurations for and versions of PHP for different parts of your application.

Weiter zum Vortrag

24.05.2017

PHP 7.0 was released one and a half years ago, PHP 7.1 was released half a year ago, and PHP 7.2 will be released later this year. It is high time to have a critical look at the PHP 7 ecosystem. How stable is PHP 7? How wide-spread is its usage in the wild? Have standard solutions, frameworks, libraries, and tools caught up with the new generation? In this session you will learn everything you need to know about the state of PHP 7.

Weiter zum Vortrag

Granted, back in the days setting up SSL/TLS on your web server was an annoying and cumbersome task. Remembering all those command line options for OpenSSL, choosing a widely accepted certificate authority (CA), and even after finally getting the certificate you're still not done as the latest security problem requires tweaking your webserver's configuration. Luckily, things changed. In 2017, setting up a secure web server doesn't have to be hard, and certificates are free. So let's get started!

Weiter zum Vortrag

29.05.2017

When PHP turned 20, the core developers presented us with a really nice birthday present: version 7, released in December 2015. Today, PHP 7 is being used in production by a growing number of companies. This day will get you ready for PHP 7, in all aspects. Sebastian Bergmann, creator of PHPUnit, will take you on a tour through the history of the PHP project. Find out where PHP originates from, and how it became one of the most widely used programming languages in the world. Why is there no PHP 6, and which crucial role did Facebook play? You will also take a look under the hood of PHP to better understand why PHP 7 can offer better performance and lower resource usage than PHP 5, and how this will affect the future of PHP. You will learn about the new language features introduced in PHP 7.0 and PHP 7.1 as well as what PHP 7.2 will bring. Arne Blankerts, security and infrastructure expert, will go in-depth about the installation and deployment of the PHP software stack. He will make the point why LAMP is no longer en vogue, and introduce you to some state-of-the-art alternatives. You will learn how to better scale PHP 7 and find out how you can smoothly transition from PHP 5 to PHP 7 from a sytem architect's point of view. Stefan Priebsch, a leading PHP consultant and coach, will show you how to get your codebase ready for PHP 7. How can you leverage new features in legacy projects without having to rewrite everything from scratch? To prepare you for the big migration, common pitfalls will be covered, and you will get to know pragmatic solutions. He will also look at the business impact of PHP 7. The day is rounded up with a Q+A session where no question will go unanswered, and we will open up the room for discussions.

Weiter zum Vortrag

30.05.2017

For larger-scale software, building a distributed, event-driven system just makes sense. But how to get there? Usually, the status quo is a big, monolithic piece of legacy software that we just cannot ignore. From the viewpoint of a consultant who, for several years, has helped clients to move away from legacy systems (and thinking), this talk gives deep insights into challenges, solutions, and attempted solutions. We will discuss what has worked, and what did not work, and discuss lessons learned.

Weiter zum Vortrag

Contrary to popular belief, no code is untestable. Sure, writing unit tests for well-crafted code that follows the SOLID principles is easy. But what about legacy code residing in some god class with implicit dependencies and no separation of concerns? We will show you that it is possible to write tests for even the worst code by explaining the why, the what, the how, and the when of software testing while looking at real-world examples.

Weiter zum Vortrag

31.05.2017

PHP 7.0 was released one and a half years ago, PHP 7.1 was released half a year ago, and PHP 7.2 will be released later this year. It is high time to have a critical look at the PHP 7 ecosystem. How stable is PHP 7? How wide-spread is its usage in the wild? Have standard solutions, frameworks, libraries, and tools caught up with the new generation? In this session you will learn everything you need to know about the state of PHP 7.

Weiter zum Vortrag

Granted, back in the days setting up SSL/TLS on your webserver was an annoying and cumbersome task: Remembering all those command line options for OpenSSL to generate an actually secure private key and appropriate signing request, choosing the least expensive yet widely accepted certificate authority (CA) and even after finally getting the certificate you're still not done as the latest security problem requires tweaking your webserver's configuration. Luckily, things changed. In 2017, setting up a secure webserver doesn't have to be hard and certificates are free. So let's get started!

Weiter zum Vortrag

01.06.2017

We never get it right the first time. So we refactor. But how can we refactor legacy code, when there are no automated tests (or not enough, at least) to make sure that we don not break things? Turns out that you can: using characterization tests, we can make sure that we do not inadvertenly modify the code's behaviour. This talk will introduce a methodology to refactor legacy code that has no automated tests. Rather than talking theory, we will work hands-on with a code example.

Weiter zum Vortrag

14.06.2017

Es erwarten euch viele Informationen rund um Testing und individuelles Coaching beim Schreiben von Unit-Tests. Da wir davon ausgehen, dass sich viele Entwickler noch gar nicht oder nur teilweise mit Unit-Tests befasst haben, wird hier zuerst eine allgemeine Einführung in das Konzept von automatisierten Tests geben. Dabei lernt ihr die Idee dahinter kennen und packt haufenweise Argumente in euren Rucksack, um schlussendlich auch eure Chefs von Unit Testing zu überzeugen. Danach schreibt ihr eure ersten Unit Tests. Von ganz einfachen Tests bis hin zu komplexeren PHPUnit Konzepten wie z.B. Mocking oder das Arbeiten mit Fixtures wird jeder Schüler etwas für sich mit nach Hause bzw. an den Arbeitsplatz nehmen können. Auf jeden Fall sollte nach diesem Tag das Interesse an Unit Testing geweckt worden sein.

Weiter zum Vortrag

15.06.2017

Wer sicher sein will, dass Software richtig funktioniert, muss sie laufend testen. Automatisierte Tests, die einem das ständige Drücken von F5 im Browser sowie das Verwenden von Debug-Statements wie var_dump() im Code ersparen, sind mehr als einen Blick wert. Erst recht, wenn man die durch manuelles Testen entstehenden Kosten vermeiden will. Wie teste ich meinen Code mit möglichst wenig Aufwand? Wie führe ich so wenig Code wie möglich aus, um das zu testen, was mich wirklich interessiert? Und was hat das alles mit sauberem Code zu tun? In diesem Vortrag lernen Contao-Entwickler, warum sie PHPUnit in ihren Werkzeugkasten aufnehmen sollten.

Weiter zum Vortrag

03.08.2017

20.08.2017

PHPUnit is a powerful tool for writing and running tests for your PHP-based software. It is not uncommon, though, that extending PHPUnit's core functionality makes sense to adapt the tool to the specific needs of your software. This session, presented by the creator of PHPUnit, teaches best practices for writing custom PHPUnit extensions and distributing them using Composer as well as PHP Archives (PHAR). You will learn how to implement custom assertions, logging capabilities, and solutions for fixture management, for instance.

Weiter zum Vortrag

14.09.2017

Größere IT-Systeme werden gerne verteilt und event-getrieben aufgebaut. Aber wie kommt man da hin, wenn der Status Quo eine große, monolithische Legacy-Software ist, die wir nicht einfach ignorieren können. Diese Präsentation berichtet von Herausforderungen, Lösungsversuchen und Lösungen aus dem Blickwinkel eines Beraters, der seit Jahren seine Kunden dabei unterstützt, von Legacy-Systemen und -Denkweisen wegzukommen. Wir besprechen, was funktioniert und was nicht funktioniert hat, und diskutieren die Lehren, die man daraus ziehen kann.

Weiter zum Vortrag

22.09.2017

Adding all the required tools like PHPUnit, PHPMD and phpDox in their matching versions to a project used to be a lot of repetitive work: Started by finding the download URL, figuring out what the actually correct and matching version is followed by verifying the SHA1 and GPG signatures and making the archive executable. And of course you'd have to repeat this very thing for every tool needed. Alternatively, you could have used composer. Only to clutter your project's dependencies with the ones of your tools. And fight their potential dependency conflicts. No more! Now you can rely on PHIVE to install and manage your project's tooling needs without all the hassle and without cluttered dependencies!

Weiter zum Vortrag

28.09.2017

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.

Weiter zum Vortrag

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.

Weiter zum Vortrag

It is easy to write code that computers can understand. Writing code that humans can understand is far more challenging. In this presentation, we will look into how we can use PHP to create a beautiful and maintainable domain-specific language for your business. After analyzing various approaches to understand why and where they fail, learn how to express business rules as executable PHP code, which will, as an added bonus, make test automation for your business rules really easy.

Weiter zum Vortrag

05.10.2017

Even projects that started promising often turn into a maintenance nightmare on the long run. Code that looked "good enough" in the beginning turns out to be not flexible enough for changing requirements. Adaptations and enhancements start to turn into waves of regressions, and nobody really enjoys working on the code any more. This workshop will teach you how to do better. Based on a real-life example, we will start with understanding the problem before we move on to writing clean and testable code along with comprehensive unit tests. We will cover Clean Code and SOLID principles as well as the basics of Domain-Driven Design. We will also explore the benefits of creating separate read and write models and look into Command/Query Responsibility Segregation (CQRS). Every attendee should have a basic understanding of object-oriented PHP code. We will code live, but due to time constaints the attendees will not write code themselves.

Weiter zum Vortrag

06.10.2017

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.

Weiter zum Vortrag

21.10.2017

For larger-scale software, building a distributed, event-driven system just makes sense. But how to get there? Usually, the status quo is a big, monolithic piece of legacy software that we just cannot ignore. From the viewpoint of a consultant who, for several years, has helped clients to move away from legacy systems (and thinking), this talk gives deep insights into challenges, solutions, and attempted solutions. We will discuss what has worked, and what did not work, and discuss lessons learned.

Weiter zum Vortrag

23.10.2017

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.

Weiter zum Vortrag

PHP 7 is being used in production by a growing number of companies. With PHP 5.6 no longer actively supported by the PHP project, it is high time to plan your migration to PHP 7 (in case you are still running PHP 5). It is also time to learn about the new features introduced in PHP 7.1 and PHP 7.2 and how to leverage them effectively. This workshop will get you ready for PHP 7, in all aspects. To prepare you for the migration from PHP 5 to PHP 7, common pitfalls will be covered, and you will get to know pragmatic solutions. You will also take a look under the hood of PHP to better understand why PHP 7 can offer better performance and lower resource usage than PHP 5, and how this will affect the future of PHP. You will learn about the new language features introduced in PHP 7.0 and PHP 7.1 as well as what PHP 7.2 will bring. The day is rounded up with a Q+A session where no question will go unanswered.

Weiter zum Vortrag

24.10.2017

Almost two years after the release of PHP 7.0 it is time to look ahead to PHP 7.2 (and say “Goodbye!” to PHP 5). The attendees of this session will learn how to prepare their code for this upcoming version in order to leverage its performance improvements as well as its new functionality offerings as soon as possible and with the least amount of risk.

Weiter zum Vortrag

It is easy to write code that computers can understand. Writing code that humans can understand is far more challenging. In this presentation, we will look into how we can use PHP to create a beautiful and maintainable domain-specific language for your business. After analyzing various approaches to understand why and where they fail, learn how to express business rules as executable PHP code, which will, as an added bonus, make test automation for your business rules really easy.

Weiter zum Vortrag

Smarty, Twig or even XSLT: templating engines are a vital component of the web stack when it comes to transforming data into HTML. And, of course, there are many different engines to choose from. Most of them, though, have two very annoying things in common: they require the full application stack to develop the design and they combine markup and display and sometimes even application logic. This talk will re-introduce you to how simple templating could be and why truly separating application logic, view logic, and design can make everybody’s life a lot easier.

Weiter zum Vortrag

25.10.2017

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 disruption. 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.

Weiter zum Vortrag

A common language, understood by technical and non-technical stakeholders alike, is essential for good communication in a software project. Combining ideas from Domain-Driven Design and Test-Driven Development, this ubiquitous language can be represented in both production code and test code. Attendees of this session will learn how to create tests that are easy to write, fast to execute, and deliver highly reliable results. They will gain expertise in the confident and effective implementation of automated tests for their software and learn how to implement custom assertions for PHPUnit to represent the common language of their project in test code.

Weiter zum Vortrag

26.10.2017

Back when starting our consulting company, we deemed invoicing a solved problem: Simply write them using office software, print to PDF, done. That solution did not make us happy, though. There was data redundancy in the various spreadsheets that we used to manage our company, plus concurrency and scalability issues due to binary file formats that you cannot easily diff. So we decided to build our own solution. After all, writing and managing invoices the way we need cannot be that hard – or so we thought. This is the story of how we went through iterations and rewrites, and what we have learned along he way. Well, we certainly learned to better understand some of the advice we give to our clients.

Weiter zum Vortrag

27.10.2017

Eine gemeinsame Sprache, die sowohl von den technischen, als auch von nicht-technischen Stakeholdern verstanden wird, ist unverzichtbar für die effektive Kommunikation in einem Softwareprojekt. Wenn man Ansätze aus dem Domain-Driven Design und von Test-Driven Development kombiniert, kann diese "Ubiquitous Language" nicht nur im Businesscode, sondern auch in den Tests zur Anwendung kommen. In diesem Vortrag wird vermittelt, wie man Tests erstellt, die einfach zu schreiben und schnell auszuführen sind, und die zuverlässige Ergebnisse liefern. Das Publikum lernt, wie man eigene, angepasste Assertions implementiert, welche die Ubiquitous Language des Projektes verwenden.

Weiter zum Vortrag

03.11.2017

A common language, understood by technical and non-technical stakeholders alike, is essential for good communication in a software project. Combining ideas from Domain-Driven Design and Test-Driven Development, this ubiquitous language can be represented in both production code and test code. Attendees of this session will learn how to create tests that are easy to write, fast to execute, and deliver highly reliable results. They will gain expertise in the confident and effective implementation of automated tests for their software and learn how to implement custom assertions for PHPUnit to represent the common language of their project in test code.

Weiter zum Vortrag

09.11.2017

A common language, understood by technical and non-technical stakeholders alike, is essential for good communication in a software project. Combining ideas from Domain-Driven Design and Test-Driven Development, this ubiquitous language can be represented in both production code and test code. Attendees of this session will learn how to create tests that are easy to write, fast to execute, and deliver highly reliable results. They will gain expertise in the confident and effective implementation of automated tests for their software and learn how to implement custom assertions for PHPUnit to represent the common language of their project in test code.

Weiter zum Vortrag

For larger-scale software, building a distributed, event-driven system just makes sense. But how to get there? Usually, the status quo is a big, monolithic piece of legacy software that we just cannot ignore. From the viewpoint of a consultant who, for several years, has helped clients to move away from legacy systems (and thinking), this talk gives deep insights into challenges, solutions, and attempted solutions. We will discuss what has worked, and what did not work, and discuss lessons learned.

Weiter zum Vortrag

15.11.2017

PHPUnit is the de-facto tool for creating tests for PHP code. This workshop will give you all the handles to get started with PHPUnit, taught by the master himself: Sebastian Bergmann.

Weiter zum Vortrag

17.11.2017

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.

Weiter zum Vortrag