Berlin 24.-26. Oktober 2018
German flag

SymfonyLive Berlin Workshops am 24. und 25. Oktober

Dieses Jahr laden wir euch zu spannenden Workshops nach Berlin ein. Die Workshops werden von qualifizierten Experten durchgeführt, die seit Jahren mit und an Symfony arbeiten sowie langjährige Erfahrung in der Realisierung von PHP-Projekten haben.

Die Workshops finden am Mittwoch, den 24.10.2018, und Donnerstag, den 25.10.2018 von jeweils 09:30 Uhr bis ca. 17:30 Uhr statt. Zwischendurch gibt es zwei Kaffeepausen sowie eine Mittagspause, bei denen jeweils für das leibliche Wohl gesorgt ist.

Wir bieten verschiedene ganztägige Workshops pro Tag an, die jeweils parallel laufen. Pro Workshoptag könnt ihr nur einen Workshop besuchen. Einige Workshops finden auf Englisch statt. Diese sind entsprechend gekennzeichnet.

 

Tickets für die SymfonyLive Berlin Workshops sowie für den Konferenztag bestellen.


Workshops am Mittwoch

 

Knowing your state machines - The Symfony Workflow Component (English)

Mittwoch, 24.10.2018 - Tobias Nyholm - verfügbar

Web development is not just about delivering a response, it is also about writing good code. The state pattern will help you move complexity from being all over your code to one or more state machines. Tobias' workshop will introduce state machines, show you how to identify uses of them, and implement them in your Symfony application in an object-oriented manner using the Symfony Workflow component.

 

Building API-driven apps with API Platform (English)

Mittwoch, 24.10.2018 - Kévin Dunglas - verfügbar

API Platform has become a very popular framework to build advanced and modern API-driven web projects. It includes :

  • a Symfony-based, super-powerful, server component to create hypermedia and GraphQL web APIs
  • a Progressive Web Apps (ReactJS, Vue.js) and native mobile apps (React Native) generator
  • a ReactJS administration interface (ReactJS + admin on rest)

After an overview of modern API patterns and formats (REST, Swagger, hypermedia, HATEOAS, JSON-LD, Hydra, Schema.org, GraphQL...), we'll learn how to use and extend the most popular features of the API Platform API component: Swagger documentation, pagination, validation, sorting, filtering, authentication, authorization, content negotiation, data model generation using the Schema.org vocabulary. Finally, we'll discover how easy it is to use the client-side (JavaScript) toolkit.

 

Advanced Application Architecture (English)

Mittwoch, 24.10.2018 - Matthias Noback - verfügbar

In this workshop we'll take a slice of a pretty standard PHP project and gradually work our way towards an application that has a better architecture. "Better" meaning that:

  • It will be easy to find out what the uses cases of the application are ("screaming architecture")
  • It will be easy to find a place for every piece of the application ("layers")
  • It will be easy to find out how users and other systems can interact with it ("ports & adapters")
  • It will be easy to provide tests and automated acceptance criteria for it ("the testing pyramid")

I'm sure you would like your project to have these properties! I'll show you all the little steps that will help you transform your application to this new level.

Requirements: This workshops is aimed at advanced developers.

 

Symfony Best Practices (Deutsch)

Mittwoch, 24.10.2018 - SensioLabs - verfügbar

Wie baut man ein einfaches Symfony4-Projekt auf? Symfony ist für seine Flexibilität bekannt und wird für die verschiedensten Zwecke benutzt. Angefangen bei Microsites, über Enterprise-Anwendungen, die Millionen von Request beantworten, bis hin zur Basis von anderen Frameworks. Wir geben Tipps zum Aufbau von Standard-Anwendungen mit Symfony, die sich bei unserer Arbeit mit einer Vielzahl von Kundenprojekten in den letzten Jahren als sinnvoll herausgestellt haben. Dieser Workshop baut bereits auf den Neuerungen in Symfony4 auf.

Anforderungen: Du solltest Symfony bereits einmal ausprobiert haben, aber generell ist dieser Workshop für Einsteiger geeignet.

 

Einstieg in PHPUnit (Deutsch)

Mittwoch, 24.10.2018 - Sebastian Bergmann - verfügbar

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.

 

DDD Practices applied to Doctrine 2 Projects (Deutsch)

Mittwoch, 24.10.2018 - Marco Pivetta - verfügbar

In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective.

We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively.

We'll freshen up some DB design done "domain-first", looking at the possible performance issues, how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic.

At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.

 

Workshops am Donnerstag

 

Knowing your state machines - The Symfony Workflow Component (English)

Donnerstag, 25.10.2018 - Tobias Nyholm - verfügbar

Web development is not just about delivering a response, it is also about writing good code. The state pattern will help you move complexity from being all over your code to one or more state machines. Tobias' workshop will introduce state machines, show you how to identify uses of them, and implement them in your Symfony application in an object-oriented manner using the Symfony Workflow component.

 

Richtig guten Code schreiben (Deutsch)

Donnerstag, 25.10.2018 - Sebastian Bergmann - verfügbar

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.

 

Schnittstellen-Testing in einer Microservice-Architektur (Deutsch)

Donnerstag, 25.10.2018 - Frank Stelzer - verfügbar

Die Definition von Schnittstellen und deren Einhaltung ist essentiell in einer Microservice-Architektur. Applikationen können eigene Schnittstellen zur Verfügung stellen und Schnittstellen von anderen Applikationen benutzen. Bei einem kleineren Projekt mag das noch überschaubar sein, aber wie macht man das in einem Projekt mit vielen Applikationen? Wie stellt man auch langfristig die Funktionalität der Schnittstellen sicher? Das normale Test-Setup, wie man es von normalen Symfony-Applikationen kennt, reicht dafür nicht mehr aus. Hier kommt das Thema Contract Testing ins Spiel. Mit den sogenannten Contracts schließen Applikationen untereinander Verträge ab und durch entsprechende Tools kann man erkennen, wann diese Verträge gebrochen werden.

In dem Workshop werde ich auf das Thema tiefer eingehen und das nötige Setup mit Hilfe eines Demo-Projekts erklären.

 

Modernisieren mit Symfony (Deutsch)

Donnerstag, 25.10.2018 - Alexander M. Turek - verfügbar

Eine in die Jahre gekommene Webanwendung. Sie verdient immer noch Geld für uns, aber es wird immer schwieriger, sie zu warten. Feature-Wünsche der Kunden häufen sich, der Bug-Tracker läuft über, aber die Abarbeitung wird immer langsamer und fehleranfälliger. Jetzt einen Rewrite zu starten, das würden viele Entwickler nun gerne tun. Nur wahrscheinlich wird dieser niemals fertig.

In diesem Workshop werden wir uns eine alte php-Codebasis vornehmen. Durch Einbinden von Symfony und weiteren Open-Source-Bibliotheken werden wir schrittweise alte Anwendungsteile ablösen und unsere Legacy-Codebasis auf diesem Weg schrittweise in eine moderne Symfony-Anwendung umbauen.

 

Building Autonomous Services (Deutsch)

Donnerstag, 25.10.2018 - Matthias Noback - verfügbar

In this workshop we’ll dive into the topic of Autonomous Service development, with a sandbox project containing several interdependent services. These projects send messages to each other, and they call each other to retrieve data. In other words, they’re not autonomous at all. We’ll figure out some ways in which we can invert dependencies and leverage a messaging solution to achieve autonomy after all.

In a relatively short period you’ll get acquainted with the basics of asynchronous integration, CQRS, domain events and integrating bounded contexts.

 

Symfony under the hood (Deutsch)

Donnerstag, 25.10.2018 - Andreas Hucks - verfügbar

Die meisten Entwickler, die regelmäßig mit Symfony arbeiten, haben schon mal eigene Services konfiguriert, und können flüssig Routen, Forms, und Constraints konfigurieren. Aber was geht unter der Haube vor? Was passiert, wenn die Konfiguration gelesen wird? Was ist ein Cache Warmer? Was passiert mit einem Request, bevor er den Controller erreicht? Wie funktioniert der HttpKernel?

In diesem Workshop benutzen wir einige Features, die nicht jedem Nutzer des Frameworks bekannt sind, die aber von großem Nutzen sein können - Compiler Passes, Cache Warmer, Custom Authorization, und mehr.

 

Basic CQRS und Event Sourcing: Von Konzepten zur Anwendung (Deutsch)

Donnerstag, 25.10.2018 - Marco Pivetta - verfügbar

CQRS und Event Sourcing sind herausfordernd, wenn man sich zum ersten Mal mit ihnen beschäftigt - insbesondere, wenn man bei Null startet. Dieser Workshop bietet einen Überblick über die Grundlagen von CQRS und ES, sowie ihren Vorteilen und Fallstricken.

Wir werden basierend auf CQRS und ES eine Anwendung modellieren und implementieren, und uns dabei mit Themen beschäftigen wie:

  • Analyse der Domain
  • Komponenten der Architektur
  • Data Flow
  • Synchronous/Asynchronous Dispatching
  • Aggregates und Domain Logik
  • Projections
  • Scaling
  • Testing