Termine in 2013

08.02.2013

PHPUnit is not difficult to set up and writing tests with it is easy. But with the the tips and tricks you will learn in this session you can leverage PHPUnit more effectively, giving you better results and increasing your productivity.

Weiter zum Vortrag

25.02.2013

Join us for this highly interactive and entertaining two-day training event. Experience three industry-leading PHP consultants demonstrating iterative software development using state-of-the-art tools and methods. Every development step will be explained in-depth while an application is developed live in front of the audience. A fictitious company is used to tell the story of a startup that struggles with the usual problems such as scalability and security in a market where you have to be agile in order to adapt to changing requirements rapidly. Over the course of two days, three development sprints (or iterations) of software development will be performed. Each sprint will showcase problems from a different phase of the application's lifecycle. At the end of each sprint we will deploy working software into production and look back at what we did in an agile retrospective. The topics covered include: application architecture, API design, OOP, test automation, security, and deployment. Instead of textbook examples, real-life problems and solution are discussed. Take advantage of this uniquely intense form of knowledge transfer at an unbeatable cost-to-benefit ratio.

Weiter zum Vortrag

27.02.2013

There is legacy code. And there is this shiny new architecture, that would make your life easier. Unfortunately, starting from scratch is not an option, and refactoring old code bears unpredictable risks. This session shows concepts and strategies to implement bridge technologies that close the gap between old and new code and architectures.

Weiter zum Vortrag

When it comes to maintaining more than only a few servers, setting up as well as configuring them manually is not an option. But before tools like Puppet can take over the configuration, you need a working infrastructure. This session will show how easy it is fully automate a CentOS setup using Kickstart installs, custom repositories, and DHCP.

Weiter zum Vortrag

28.02.2013

PHPUnit is not difficult to set up and writing tests with it is easy. But with the the tips and tricks you will learn in this session you can leverage PHPUnit more effectively, giving you better results and increasing your productivity.

Weiter zum Vortrag

So you have moved your business logic out of your MVC controllers, and into domain objects. Then, the business rules change. How can we adapt business objects, while deliberately breaking backwards compatibility? What is the best way to represent business logic in PHP after all? This talk introduces some lightweight approaches.

Weiter zum Vortrag

18.03.2013

Die Teilnehmer werden befähigt, selbstständig eine stabile PHP-Umgebung aufzubauen. Basiswissen rund um die PHP-Programmierung, die Kompilation und Installation von PHP schaffen grundlegende Orientierung. Der Workshop behandelt die Fragen, wie eine sinnvolle, alltagstaugliche PHP-Arbeitsumgebung aussieht und wie sie installiert wird. Zum Einstieg in die professionelle Programmierarbeit werden verschiedene Entwicklungswerkzeuge vorgestellt und ihre Verwendung demonstriert.

Weiter zum Vortrag

Neben Informationen zur grundlegenden Funktionen werden erste Einsichten in das überraschend große Einsatzpotenzial von PHP vermittelt. Der Workshop setzt nach der erfolgreichen Installation von PHP bei den Fragen ein, was der PHP-Interpreter ist und wie er funktioniert. Die Beschäftigung mit dessen zahlreichen möglichen Erweiterungen und ihrer Installation zeigt anschließend, wie universell diese Programmiersprache eingesetzt werden kann. Weitere Themen sind Bytecode und PHP-Performance mit dem Ziel, ein übergeordnetes Verständnis für die Arbeitsweise von PHP zu entwickeln.

Weiter zum Vortrag

Wer am Workshop teilnimmt, erfährt, wie man bereits vorhandene gute Lösungen für die eigene Arbeit nutzen kann. Warum soll man das Rad eigentlich neu erfinden? Für viele Standardprobleme und –aufgaben gibt es bewährte Lösungen. Wer sie kennt und für die eigene Aufgabe einsetzen kann, spart viel Zeit. Die Teilnehmer erfahren außerdem, wie sie Fehler abfangen und ihre Software robust machen können. Themen sind Exceptions und der eigene Fehler-Handler, die effiziente Verarbeitung von Formularen, Iteratoren, Streams, Streamkonzepte und -wrapper. Wer weiß, wie man Klassen per Autoload richtig (nach)lädt, vermeidet Fehler von vornherein.

Weiter zum Vortrag

Der Workshop sensibilisiert für das Kernthema Sicherheit, öffnet den Blick für Risiken und stellt wirksame Schutzkonzepte vor. Software-Entwickler tragen hohe Verantwortung im Unternehmen. Von der Qualität ihrer Sicherheitskonzepte hängt die Sicherheit der eingesetzten Software und der dadurch unterstützten Workflows ab. Wer sich dieser Verantwortung bewusst ist, will wissen, wie der eigenen PHP-Anwendung oder der umgebenden Infrastruktur geschadet werden könnte. Der Workshop berücksichtigt deshalb auch komplexe Server- und System-Konfigurationen. Neben Risiken werden bewährte Sicherheitskonzepte vorgestellt.

Weiter zum Vortrag

Der Workshop vermittelt, warum jedes Projekt mit der Klärung der tatsächlichen Anforderungen beginnen sollte. Jedes reale Projekt verfolgt konkrete Ziele und wird begleitet von Anforderungen wie Sicherheit, Wartbarkeit und Gebrauchstauglichkeit. Damit der spätere Lösungsansatz dem gerecht wird, ist es sinnvoll, zunächst von allem Unwesentlichen zu abstrahieren und den Kern der Aufgabe zu definieren. Wer gleich in Framework denkt, übersieht das häufig und schafft ünproblemteLLösungen, die nicht benötigten Ballast enthalten. Statt mit Überlegungen zur Implementierung und Realisierung zu beginnen, gehört das Thema Architektur an den Anfang. Der Workshop sorgt mit Augenzwinkern für Anschaulichkeit und Praxisnähe für einen Perspektivwechsel beim Teilnehmer.

Weiter zum Vortrag

Wie sich bewährte Lösungen für neue Aufgaben einsetzen lassen, erfahren die Teilnehmer dieses Workshops. In der Praxis wird vorhandener Code relativ selten wieder verwendet. Zumeist sind lästige Abhängigkeiten daran schuld. Wie man sie erkennt, umgeht oder vermeidet ist Thema dieses Workshops. Die richtige Verwendung von Code, Bibliotheken oder Komponenten anderer Autoren — ohne vermeidbare Abhängigkeit von deren Änderungen und Release-Zyklen — wird anhand fortgeschrittener OOP-Techniken demonstriert. Außerdem werden Entwurfsmuster zur Wiederverwendung von Lösungsideen und Konzepten losgelöst von konkretem Code vorgestellt.

Weiter zum Vortrag

19.03.2013

Wer den roten Faden beim Thema OOP vermisst, findet ihn hier (wieder). Der Workshop klärt ausführlich die Frage, was es mit der Objektorientierten Programmierung eigentlich auf sich hat. Jenseits bekannter Standardbeispiele führt er anschaulich und praktisch in die OOP mit PHP ein. Dabei wird neben den Grundlagen und zentralen Prinzipien der OOP ihr sinnvoller Praxiseinsatz demonstriert. Außer dem notwendigen Faktenwissen wird eine Denkweise vermittelt, die es erlaubt, unnötig komplizierte Ansätze von vornherein zu vermeiden.

Weiter zum Vortrag

Für alle Entwickler, die erste Erfahrungen mit dem Testen von PHP-Anwendungen sammeln wollen. Der Workshop vermittelt grundlegende Kenntnisse und Fähigkeiten im Einsatz von PHPUnit. Sie lernen alles, was Sie über das Schreiben, Ausführen und Organisieren von Unit Tests mit PHPUnit beherrschen müssen.

Weiter zum Vortrag

Diagnose und Therapie der wechselseitigen Abhängigkeiten, in denen sich PHP-Programme und der Rest des Universums befinden. Zum Sammeln von Erkenntnis ist es statthaft, Sachverhalte zu vereinfachen. Die Realität konfrontiert Software-Entwickler jedoch meist mit höchst komplexen Abhängigkeiten, die für den stabilen Betrieb von Software entscheidend sind. Es gibt z. B. wechselseitige Abhängigkeiten zwischen PHP-Programmen verschiedener Autoren oder von PHP-Erweiterungen, externen Programmen, lokalen oder entfernten Diensten. Beantwortet werden im Workshop die Fragen, wie man solche Abhängigkeiten explizit machen und verwalten kann. Demonstriert wird, wie man eine PHP-Anwendung inklusive ihrer Abhängigkeiten installiert.

Weiter zum Vortrag

Hier erfährt der Teilnehmer Wissenswertes zum theoretischen Hintergrund und dem praktischen Einsatz von relationalen Datenbanken. Die Daten, die Unternehmen in relationalen Datenbanken speichern, werden meist sehr, sehr alt. Deshalb gehört die Anpassung der Datenbankstruktur an unterschiedliche Systeme (Migration) zu einer der häufigsten Aufgaben für Software-Entwickler. Der Workshop erklärt das Prinzip der relationalen Datenbanken und den Umgang mit Daten, die sie verarbeiten können. Die Programmierung performanter Datenbankabfragen spielt eine wichtige Rolle. Behandelt werden bei allen Aspekten die möglicherweise auftretenden Probleme und deren Vermeidung. Der theoretische Inhalt wird mit anschaulichen Beispielen aus der Praxis illustriert.

Weiter zum Vortrag

Wer wissen will, was nicht-relationale Datenbanken sind und wofür sie benötigt werden, ist hier richtig. Ein theorieträchtiger Workshop mit viel nützlichem Input. Anschauliche Beispiele und griffige Erfahrungswerte sorgen dafür, dass die Informationen eingängig sind und gut verstanden werden. Geklärt werden zentrale Fragen: Was bedeutet nicht-relational? Welche Arten von nicht-relationalen Datenbanken gibt es? Was kann man damit machen? Wann macht ihr Einsatz Sinn und benötigt man jetzt überhaupt noch relationale Datenbanken?

Weiter zum Vortrag

20.03.2013

Vorgestellt werden Wege und Werkzeuge für effektives Arbeiten im Entwicklerteam. Der Workshop befasst sich mit der Lösung technischer Probleme und Konflikte, die auftreten (können), wenn mehrere Entwickler an einer Software arbeiten. Klassiker sind das gegenseitige Überschreiben der Dateien oder nicht zueinander passende Änderungen. Gezeigt werden effektive Entwicklungsprozesse, sinnvolle Arbeitsteilung und eine verteilte Versionskontrolle mit dem Werkzeug Git.

Weiter zum Vortrag

Wer weiß, wie PHPUnit unter optimalen Bedingungen funktioniert, erfährt hier, wie es in typischen realen Konstellationen eingesetzt wird. Der Berufsalltag konfrontiert den Software-Entwickler häufig mit existierendem älterem Code, für den es in vielen Fällen keine automatisierten Tests gibt. Um die Testverfahren von PHPUnit dennoch einsetzen zu können, müssen bestimmte Voraussetzungen geschaffen werden. Der Workshop ergänzt vorhandenes Grundlagenwissen mit diesen praxisrelevanten Informationen. Teilnehmer können gerne Problemfälle aus dem eigenen Arbeitsalltag als Beispiele einbringen.

Weiter zum Vortrag

Der Workshop vermittelt Überlegungen zur weitsichtigen Planung und Konzeption von Server und Systemarchitektur für PHP. Geklärt werden zunächst die Bedeutung von und die Unterschiede zwischen System- und Softwarearchitektur. Die Teilnehmer erfahren, wie man eine Produktiv-Umgebung plant und welche (Sicherheits-)Aspekte dabei beachtet werden müssen. Leidenschaftlich diskutiert wird die Frage, ob man sich für Shared Hosting oder den eigenen (Web-)Server entscheiden sollte. Praxisbewährter Input zu Server-Kapazitäten und der Automatisierung von Installation und Konfiguration rundet den Workshop ab.

Weiter zum Vortrag

Der Workshop zeigt, woran Entwickler am besten vor dem Kopieren von Software auf den Server (Deployment) denken. Theoretisch ist alles ganz einfach, praktisch eher nicht. Deployment ist ein komplexer Schritt, bei dem eine Menge schief gehen kann. Der Workshop diskutiert die Vor- und Nachteile verschiedener Konzepte. Es wird an praktischen Beispielen nachvollzogen, was an Code tatsächlich aktiv ist. Enorm wichtig in der Praxis ist das Troubleshooting: Was tun, wenn etwas schief gelaufen ist? Welche Seiteneffekte (Datenbanken, Schnittstellen usw.) sind zu beachten? Was passiert, wenn man mit mehreren Webservern arbeitet? Außerdem wird der Frage nachgegangen, warum das alles eigentlich den Entwickler und nicht nur die Admins interessieren sollte.

Weiter zum Vortrag

Der Workshop diskutiert verschiedene Verfahren des Datenzugriffs und der Persistenz in PHP. In PHP gibt es unterschiedliche Strategien und Lösungsmuster, um auf Daten zuzugreifen oder sie dauerhaft zu speichern. Es werden konkurrierende Ansätze vorgestellt und mit Blick auf Stärken und Schwächen verglichen. Ziel ist es, eine Vorstellung vom richtigen Umgang mit Datenquellen in PHP zu vermitteln. Dabei werden die Konzepte von objektrelationalen Mappern (ORMs) vorgestellt, die Objektstrukturen in relationalen Datenbanken speichern und von dort wieder laden können. Ob ihr Einsatz sinnvoll ist, wird im Workshop diskutiert.

Weiter zum Vortrag

25.03.2013

PHPUnit is not difficult to set up and writing tests with it is easy. But with the the tips and tricks you will learn in this session you can leverage PHPUnit more effectively, giving you better results and increasing your productivity.

Weiter zum Vortrag

20.04.2013

Frameworks solve common problems, and thus allow rapid application development. Agile and incremental software development, however, does not magically create architectures as you go. We will prove the point that your favourite framework does not provide you with an application architecture, and analyze what implications this has.

Weiter zum Vortrag

06.05.2013

Join us for this highly interactive and entertaining two-day training event. Experience three industry-leading PHP consultants demonstrating iterative software development using state-of-the-art tools and methods. Every development step will be explained in-depth while an application is developed live in front of the audience. A fictitious company is used to tell the story of a startup that struggles with the usual problems such as scalability and security in a market where you have to be agile in order to adapt to changing requirements rapidly. Over the course of two days, three development sprints (or iterations) of software development will be performed. Each sprint will showcase problems from a different phase of the application's lifecycle. At the end of each sprint we will deploy working software into production and look back at what we did in an agile retrospective. The topics covered include: application architecture, API design, OOP, test automation, security, and deployment. Instead of textbook examples, real-life problems and solution are discussed. Take advantage of this uniquely intense form of knowledge transfer at an unbeatable cost-to-benefit ratio.

Weiter zum Vortrag

03.06.2013

PHPUnit is not difficult to set up and writing tests with it is easy. But with the the tips and tricks you will learn in this session you can leverage PHPUnit more effectively, giving you better results and increasing your productivity.

Weiter zum Vortrag

Back in the days the LAMP stack did satisfy the needs of the web, making it the big success we all know. But today's applications more often than not require a scalability, security and performance this classic environment cannot provide. In this hands-on session we will setup a modern web stack leveraging state-of-the-art components like nginx, PHP-FPM, Redis and more.

Weiter zum Vortrag

Unit Testing does not work for you? You are not alone. Every developer who starts with unit testing faces the same issues. Issues that will not go away by learning more about unit testing or PHPUnit. You are likely looking at the wrong end of the stick. You will learn how to get over the hump quickly when starting with PHPUnit.

Weiter zum Vortrag

04.06.2013

All your tests are green and you are ready to deploy the latest version of your software into production. Again. If only you had an automated way of doing that to avoid the manual hassle! In this hands-on session you will learn how to make Jenkins and friends push your deployment into the next level, easily maintaining any set of servers.

Weiter zum Vortrag

There are incredibly powerful use cases for the proxy pattern, for example remote proxies, virtual proxies, smart references, protecting proxies for access control, and, to a certain extent, even proxies adding security features. We will compare different ways of implementing proxies in PHP and see lots of concrete code examples.

Weiter zum Vortrag

05.06.2013

In his book "The Lean Startup", Eric Ries shows how to create a radically successful business. This session demonstrates how to successfully apply the "Lean Startup" ideas to development teams and application archictectures in the PHP world. A word of warning: radically successful development teams have been known to transform whole organizations.

Weiter zum Vortrag

14.06.2013

Wenn man kontinuierlich neue Features entwickelt und neuen Code häufig live stellt, dann darf Qualität nicht nachträglich passieren. Dieser Vortrag erklärt, wie Agilität und Qualität in Einklang gebracht werden können und was dies für die Architektur Ihrer Software bedeutet.

Weiter zum Vortrag

24.06.2013

Software-Architektur ist abstrakt und schwer zu greifen. Ein Fast-Food Restaurant dagegen kennt und versteht jeder, obwohl sich auch hier eine Menge Komplexität verbirgt, wenn man mal genauer hinsieht. In dieser Session wird ein Burger-Restaurant als Metapher verwendet, um praktikable Lösungen für die typischen Performance- und Skalierungsprobleme von Webapplikationen zu erläutern. Diese Metapher hilft auch dabei, Software-Architektur an Personen ohne technischen Background zu vermitteln. Lassen Sie sich überraschen, was ein Burger-Restaurant und eine Web-Applikation gemeinsam haben. Es ist mehr, als Sie denken.

Weiter zum Vortrag

26.06.2013

Die Installation von PHPUnit ist nicht schwer und das Schreiben von Tests ist einfach. Sie können aber bessere Ergebnisse erzielen und Entwicklungszeit sparen, wenn Sie die Kniffe kennen, mit denen man PHPUnit effektiver einsetzen kann. In diesem Vortrag erklärt der Entwickler von PHPUnit die besten Praktiken, um Ihre Tests effizient zu implementieren.

Weiter zum Vortrag

Ein gewichtiger Mitspieler im Erfolg des Web war mit Sicherheit der LAMP-Stack. Moderne Anwendungen jedoch brauchen häufig mehr Skalierbarkeit, Sicherheit und Performanz als diese klassische Umgebung liefern kann. In dieser Hand-On Session werden wir eine moderne Infrastruktur aufsetzen – unter Verwendung von State-of-the-Art Komponenten wie nginx, PHP-fpm, Redis und weiteren.

Weiter zum Vortrag

Sie kennen die Regeln: Eingaben validieren und Ausgaben escapen. Sie speichern Passworte natürlich nur als Hash und alle Ihre Formulare sind durch CSRF-Token vor Missbrauch geschützt. Doch was ist mit allen kleinen Dingen, die sich vergessen haben oder deren Lösung zwar gut aussieht, in der Praxis aber leider nicht ausreicht oder nicht wirklich tut, wonach es aussieht? Diese Session zeigt häufige Fehler, vergessene Angriffsvektoren und Designfehler in beliebten Lösungen.

Weiter zum Vortrag

Controller sollen schlank sein, und die Geschäftslogik gehört in Domänenobjekte anstelle in Controller. Das wissen wir alle. Aber was, wenn sich dann die Geschäftsregeln ändern? Wie können wir unsere Geschäftsobjekte daran anpassen, besonders dann, wenn ganz bewusst die Rückwärtskompatibilität gebrochen werden muss? Wie repräsentiert man überhaupt Geschäftslogik am besten in PHP? Dieser Vortrag zeigt einige alternative und leichtgewichtige Ansätze auf.

Weiter zum Vortrag

25.08.2013

Integrationstests schließen die Lücke zwischen Unit Tests und Systemtests, indem sie auf die Schnittstellen zwischen Komponenten fokussieren und sicherstellen, dass ihr Zusammenspiel wie erwartet funktioniert. In diesem Vortrag machen Arne Blankerts und Sebastian Bergmann anschaulich, wie aus einem konkreten Problem bei der Arbeit an Integrationstests in einem Kundenprojekt das Feature "Test Proxies" für PHPUnit entstand. Sie diskutieren das Problem, stellen die Lösung vor, erklären die Implementierung von Mock-Objekten in PHPUnit und zeigen, wie das Feature umgesetzt wurde.

Weiter zum Vortrag

06.09.2013

Symfony2 is a popular framework for developing web applications in PHP. But just because you use an off-the-shelf framework as the foundation for your development effort does not mean that you do not need to think about the architecture, design, and testability of the software you're building anymore. This workshop, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your Symfony2 application is easy to test and explains how to test it with PHPUnit.

Weiter zum Vortrag

10.09.2013

Quality Assurance in general and Unit Testing in particular have come a long way since the inception of PHPUnit twelve years ago: simple PHP programming has evolved into software engineering with PHP. Join Sebastian Bergmann, the creator of PHPUnit, as he shares his experience on overcoming both the technological challenges of testing PHP code and common organizational issues when introducing software development teams to testing. He will reflect on the lessons learned in the first decade of PHPUnit and will give a look into the tool's future.

Weiter zum Vortrag

Kurze Antwortzeiten sind heute elementar, nicht nur für Online-Shops. Was tun, wenn die Performance nicht ausreicht? Stärkere Server kaufen? In die Cloud migrieren? Noch eine Caching-Schicht einführen, oder die Schuld auf die Datenbank schieben? Das kann man alles tun, aber bevor man Hardware-Hersteller glücklich macht, sollte man nochmal über die Architektur der Anwendung nachdenken. Arne Blankerts und Stefan Priebsch von thePHP.cc haben die Firma Globetrotter beim Relaunch ihres Online-Shops unterstützt. Sie berichten von ihren Erfahrungen mit dem Projekt und stellen das Architekturkonzept vor, mit dem es Globetrotter gelang, erfolgreich einen höchst skalierbaren und performanten Shop zu entwickeln.

Weiter zum Vortrag

16.09.2013

Software is never perfect. Failures of software make the news, damage the reputation of companies, and cost money in lost revenue. Testing software early and in a small scope is good, a high degree of test automation is even better. If only it were that simple. In reality, not all code is easy (enough) to test. Sebastian Bergmann, creator of PHPUnit, will open his bag of tricks and demonstrate how you can test code that is hard to test. Stefan Priebsch, a proven expert on software architecture and design, will show how you can avoid these tricks by making untestable code testable. Together they will show how to write clean and testable code, including unit tests, in a live pair programming session.

Weiter zum Vortrag

For almost ten years already, the Open Web Application Security Project (OWASP) is maintaining a list of the ten most critical web application security risks. In this highly interactive workshop we will discuss these common problems as described in the 2013 edition and based on practical code examples. We will analyse the implications of the issues discovered and implement solutions that work.

Weiter zum Vortrag

Design patterns are proven solutions to common coding problems. You probably even know some design patterns, but can you really apply them in praticse? In this workshop, we will solve some interesting, web-related coding problems using design patterns like Command, State, or Strategy. And while we are at it, we discuss best practices, for example composition over inheritances, single responsibility, and separation of concerns. No slides will be shown. All code will be written and explained live instead, taking audience questions and feedback into account.

Weiter zum Vortrag

Teflon-coated frying pans often come with an extended warranty covering damage to the teflon coating. But have you ever tried to return a damaged frying pan? This is not as easy as it looks. Turns out that we can learn a lot about software architecture and SQL vs. NoSQL while trying to return a damaged frying pan.

Weiter zum Vortrag

Life ain't easy, as a famous proverb claims. Usually people refer to it when pondering difficult and potentially life changing decisions. Many things in our daily life seem easy, but they are not: they are often based on implicit knowledge and inconsistent processes. Why do you have to push a button to get a bus to stop but a train stops by itself? And who told you? And how does all that apply to software development and security?

Weiter zum Vortrag

What have Akkadian tablets from southern Babylonia dated 1600 BC and a 9th century mathematician to do with today's software development? What does a professional cook and his kitchen have in common with a software developer and the codebase he or she works on? What is the equivalent to fresh and organic produce in the world of software? These questions are answered while we take a look at quality assurance from a different perspective.

Weiter zum Vortrag

17.09.2013

Response time is crucial – not only for online stores. But what if the performance is lacking? Buy more powerful servers? Migrate into the cloud? Add yet another layer of caching or blame the under powered database? All possible options, but before you make your hardware vendor happy you should reconsider your software architecture! This session will acquaint you with ideas for a high performance software architecture which let you scale from single server to cloud.

Weiter zum Vortrag

All your tests are green and you are ready to deploy the latest version of your software into production. Again. If only you had an automated way of doing that to avoid the manual hassle! In this hands-on session you will learn how to make Jenkins and friends push your deployment into the next level, easily maintaining any set of servers.

Weiter zum Vortrag

18.09.2013

When you continuously develop new features and deploy new code to production frequently, quality must not be an afterthought. This keynote will elucidate how agility and quality are connected and what this should mean for the architecture of your software.

Weiter zum Vortrag

Frameworks solve common problems, and thus allow rapid application development. Agile and incremental software development, however, does not magically create architectures as you go. We will prove the point that your favourite framework does not provide you with an application architecture, and analyze what implications this has.

Weiter zum Vortrag

26.09.2013

This session covers how PHPUnit is used in different communities and projects, and what's been learnt along the way, what's new and state of the art in unit testing, and how PHPUnit is integrating state-of-the-art paradigms, how PHPUnit compares to other testing technologies and methodologies.

Weiter zum Vortrag

07.10.2013

Software is never perfect. Failures of software make the news, damage the reputation of companies, and cost money in lost revenue. Testing software early and in a small scope is good, a high degree of test automation is even better. If only it were that simple. In reality, not all code is easy (enough) to test. Sebastian Bergmann, creator of PHPUnit, will open his bag of tricks and demonstrate how you can test code that is hard to test. Stefan Priebsch, a proven expert on software architecture and design, will show how you can avoid these tricks by making untestable code testable. Together they will show how to write clean and testable code, including unit tests, in a live pair programming session.

Weiter zum Vortrag

09.10.2013

Zend Framework 2 is a popular framework for developing web applications and services in PHP. But just because you use an off-the-shelf framework as the foundation for your development effort does not mean that you do not need to think about the architecture, design, and testability of the software you're building anymore. This session, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your Zend Framework 2 application is easy to test and explains how to test it with PHPUnit.

Weiter zum Vortrag

Once upon a time, in a kingdom far, far away there was a wizard. Each day the king laid out a new scenario in which foes of the realm would test his fortress' defenses. And every day the wizard would come up with new measures to keep the fortress safe. One day a knight appeared at the king's court. For each of the contraptions the wizard had implemented the knight made the case that it was superfluous because the scenario it was built to counter could be prevented. When a dragon named Legacy appeared and threatened the realm, the king turned to knight and wizard for counsel. In this Tech Talk, Sebastian Bergmann, creator of PHPUnit, will open his bag of tricks while Stefan Priebsch, a proven expert on software architecture and design, will talk about avoiding these tricks.

Weiter zum Vortrag

27.10.2013

All your tests are green and you are ready to deploy the latest version of your software into production. Again. If only you had an automated way of doing that to avoid the manual hassle! In this workshop, you will learn how to make Jenkins and friends push your deployment into the next level. We will install and configure a Jenkins server, define and automate the build process, deal with dependencies and push stable versions of our software into production. Get ready to revamp your deployment!

Weiter zum Vortrag

28.10.2013

In diesem Vortrag erzählen Sebastian Bergmann und Manuel Pichler, warum sie Werkzeuge wie PHPUnit, PHP_Depend, PHP Mess Detector, PHPCPD und PHPLOC schmerzlich vermisst haben und letztendlich selbst implementiert haben, weil es niemand sonst getan hat. Die Teilnehmer lernen dabei unter anderem, welche Aspekte von PHP-Software man auf welche Art und zu welchem Zweck überprüfen kann.

Weiter zum Vortrag

Beyond Unit Tests, Acceptance and Integration Tests are crucial. Implemented as End-to-End tests, however, they are cumbersome to write and slow to execute. Edge-to-Edge Tests are easier to write and maintain, faster to execute, and deliver more reliable results. The audience will learn how to effectively implement these tests with PHPUnit.

Weiter zum Vortrag

29.10.2013

Response time is crucial – not only for online stores. But what if the performance is lacking? Buy more powerful servers? Migrate into the cloud? Add yet another layer of caching or blame the under-powered database? All possible options, but before you make your hardware vendor happy you should reconsider your software architecture! This session will acquaint you with ideas for a high performance software architecture that lets you scale from single server to cloud.

Weiter zum Vortrag

OOP teaches us that object can have state, and have (setter) methods to modify it, and getter methods to ask questions about the object's state. What happens if we apply this not only to objects, but also to the architecture of a whole application? This talk introduces CQRS and event sourcing, two most interesting architectural concepts that deserve more attention from PHP developers.

Weiter zum Vortrag

30.10.2013

Nur noch eine Stunde bis zur Deadline, noch schnell das letzte Feature einbauen. Das dauert ja nur ein paar Minuten, erst recht wenn man ein Team aus zwei bekannten Experten darauf los lässt. Doch wie aus dem Nichts tauchen Probleme auf, der Code tut nicht was man erwartet. Wo hat das Übel seine Wurzeln? Wie können die Probleme behoben werden? Fiebern Sie mit Stefan Priebsch und Tobias Schlitt in ihrer amüsanten und lehrreichen Pair-Programming-Session. (Wie) werden die beiden die Deadline einhalten?

Weiter zum Vortrag

08.11.2013

Der Start in die testbasierte Arbeit (z.B. mit PHPUnit) fällt vielen Entwicklern und Entwicklerinnen nicht leicht. Den Anfang im Legacy Code zu finden ist eine hohe Hürde. Wie anfangen? Daneben stellen sich auch Team- und Prozessfragen: Wie integrieren wir Tests in unsere Arbeitsprozesse? Wie überzeuge ich Leitungskräfte und Kunden vom neuen Vorgehen? Die Referenten Judith Andresen und Sebastian Bergmann erläutern pragmatisch und interdisziplinär einen erfolgsversprechenden Weg zu testbasierter Entwicklung.

Weiter zum Vortrag

20.11.2013

Zend Framework 2 is a popular framework for developing web applications and services in PHP. But just because you use an off-the-shelf framework as the foundation for your development effort does not mean that you do not need to think about the architecture, design, and testability of the software you're building anymore. This session, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your Zend Framework 2 application is easy to test and explains how to test it with PHPUnit.

Weiter zum Vortrag

02.12.2013

Git ist ein mächtiges Versionsverwaltungssystem, mit dem Sie alle Bestandteile Ihrer Software durch alle Änderungen und Versionen zuverlässig verfolgen können. Damit schaffen Sie die Grundlage für die kontinuierliche Integration der Software. Der Workshop vermittelt Grundlagen für den Einsatz von Git, Best Practices und Prozesse für Entwicklung, Release-Management und Deployment, die Ihre Teamarbeit spürbar effektiver machen.

Weiter zum Vortrag

Der Workshop zeigt Teilnehmern, die mit den Grundlagen der OOP vertraut sind, fortgeschrittene Techniken wie Dependency Injection, abstrakte Klassen, Interfaces und Best Practices für erfolgreiche OOP. Eine Live-Coding-Session macht den Einsatz der vorgestellten Techniken in der Praxis erfahrbar. Außer Faktenwissen zeigt der Workshop, dass gute Lösungen einfache Lösungen sind: Einfache Objekte sind leichter wieder zu verwenden und vermeiden Fehler.

Weiter zum Vortrag

Um stets auf böse Überraschungen gefasst zu sein, ließ sich Inspektor Clouseau (Filmfigur aus Der rosarote Panther) ständig von seinem Butler unvermutet angreifen. Davon lässt sich in Zeiten ständiger Einbruchsversuche durch gelangweilte Anwender viel lernen: Verantwortungsbewusste Entwickler müssen einfach wissen, wie man der eigenen Anwendung oder Infrastruktur schaden könnte. Die Workshop vermittelt grundlegende Zusammenhänge und zeigt in einer Live Session, wie man sowohl klassische XSS- oder SQL-Injections vermeiden kann, als auch das eigene System gengen weniger bekannte Angriffe abdichtet und wirksame Lösungen implementiert.

Weiter zum Vortrag

03.12.2013

Die neusten PHP-Versionen überzeugen im Programmieralltag durch eine Fülle relevanter Vereinfachungen. Lernen Sie die innovativen Features und geschickte Einsatzmöglichkeiten der neuen Versionen kennen. Entdecken Sie das Lösungspotenzial aktueller Technologien aus dem PHP-Umfeld für Ihre Fragestellungen.

Weiter zum Vortrag

Wie sich bewährte Lösungen für neue Aufgaben einsetzen lassen, erfahren die Teilnehmer dieses Workshops. In der Praxis wird vorhandener Code relativ selten wieder verwendet. Zumeist sind lästige Abhängigkeiten daran schuld. Wie man sie erkennt, umgeht oder vermeidet ist Thema dieses Workshops. Die richtige Verwendung von Code, Bibliotheken oder Komponenten anderer Autoren — ohne vermeidbare Abhängigkeit von deren Änderungen und Release-Zyklen — wird anhand fortgeschrittener OOP-Techniken demonstriert. Außerdem werden Entwurfsmuster zur Wiederverwendung von Lösungsideen und Konzepten losgelöst von konkretem Code vorgestellt.

Weiter zum Vortrag

03.12.2012

Natürlich könnte man das Rad jeden Tag neu erfinden. Meist fehlt dafür die Zeit, Spaß macht es auch nicht und Fehler können sich so immer wieder an denselben Stellen einschleichen. Für die vielen alltäglichen Probleme, die nur geringfügig von schon vorhandenen Lösungen abweichen, gibt es clevere Ansätze, die das Leben leichter machen. In einer komplett vom Auditorium gesteuerten Live Session zeigt der Workshop dafür programmatische Konzepte und lädt zur Diskussion über Tools und klassische Fragestellungen ein.

Weiter zum Vortrag

04.12.2013

Wer weiß, wie PHPUnit unter optimalen Bedingungen funktioniert, erfährt hier, wie es in typischen realen Konstellationen eingesetzt wird. Der Berufsalltag konfrontiert den Software-Entwickler häufig mit existierendem älterem Code, für den es in vielen Fällen keine automatisierten Tests gibt. Um die Testverfahren von PHPUnit dennoch einsetzen zu können, müssen bestimmte Voraussetzungen geschaffen werden. Der Workshop ergänzt vorhandenes Grundlagenwissen mit diesen praxisrelevanten Informationen. Teilnehmer können gerne Problemfälle aus dem eigenen Arbeitsalltag als Beispiele einbringen.

Weiter zum Vortrag

Die meisten Web-Frameworks propagieren Model-View-Controller (MVC) als Anwendungsarchitektur. Oft bleibt aber unklar, wie so ein Model aussehen soll beziehungsweise wo es sich verbirgt. Und während jedem klar ist, was ein View ist, scheiden sich bei Controllern schon wieder viele Geister. In diesem Workshop erkunden wir, was Model-View-Controller eigentlich wirklich ausmacht, und diskutieren, welche Auswirkungen dies auf Webanwendungen hat. Die Teilnehmer lernen dabei alternative Architekturkonzepte wie CQRS oder Event Sourcing kennen.

Weiter zum Vortrag

Der Workshop zeigt, woran Entwickler am besten vor dem Kopieren von Software auf den Server (Deployment) denken. Theoretisch ist alles ganz einfach, praktisch eher nicht. Deployment ist ein komplexer Schritt, bei dem eine Menge schief gehen kann. Der Workshop diskutiert die Vor- und Nachteile verschiedener Konzepte. Es wird an praktischen Beispielen nachvollzogen, was an Code tatsächlich aktiv ist. Enorm wichtig in der Praxis ist das Troubleshooting: Was tun, wenn etwas schief gelaufen ist? Welche Seiteneffekte (Datenbanken, Schnittstellen usw.) sind zu beachten? Was passiert, wenn man mit mehreren Webservern arbeitet? Außerdem wird der Frage nachgegangen, warum das alles eigentlich den Entwickler und nicht nur die Admins interessieren sollte.

Weiter zum Vortrag