Rückblick SymfonyLive Berlin 2018
Drei Tage SymfonyLive in Berlin liegen hinter uns. Drei Tage mit vielen spannenden Workshops, interessanten Talks, guten freundschaftlichen und fachlichen Gesprächen, leckerem Essen, einer tollen Location und vielem mehr, was eine gelungene SymfonyLive ausmacht.
Du hast die Veranstaltung leider verpasst oder warst dabei und möchtest die Konferenz nochmal Revue passieren lassen? Wir haben für euch die Talks kurz zusammengefasst und Links zu den Slides und Bewertungen zugefügt.
Und hier ist der Video-Rückblick!
Das Spektakel geht übrigens weiter: Im nächsten Jahr legen wir noch einen drauf und verlängern die Konferenz um einen Tag. Noch mehr Workshops, noch mehr Talks, noch mehr Symfony.
Keynote — Symfony without the Framework Bundle
Frameworks wird häufig nachgesagt langsam zu sein — auch Symfony ist davon nicht ausgenommen. Tobias Nyholm hat uns erklärt woher diese Vorurteile kommen, welchen Wahrheitsgehalt sie haben und ob es sich nicht einfach um veraltete Ansichten handelt.
Und dann ging es vor allem darum, wie man seine Anwendungen schneller machen kann — sogar so schnell, dass sie in weniger als 15ms antworten.
Seine Top 3 Tipps für eine bessere Performance:
#1 Buy a better Server
#2 Use Varnish
#3 Run less Code
→ Bewertung auf joind.in & Slides
Eine Einführung in die Symfony Messenger-Komponente
„Symfonys Messenger-Komponente macht die Einführung asynchroner Verarbeitung in eine bestehende Anwendung einfacher denn je.”, sagt Denis Brumann und stellt in seinem Talk genau das unter Beweis.
Die in Symfony 4.1 hinzugekommene Messenger-Komponente ermöglicht es, asynchrone Prozesse auch zwischen mehreren Anwendungen anzustoßen, wodurch sie zu einem elementaren Baustein einer microservice-basierten Architektur werden. In seinem Talk hat Denis die einzelnen Aspekte der Komponente, wie Message Bus, Handler und Middlewares beleuchtet. Anhand eines praktischen Beispiels wurde vorgestellt, wie die Message Komponente Schritt für Schritt in ein bestehendes Projekt eingeführt wird und auf Stolpersteine bei der Umsetzung hingewiesen. Die Vorgehensweise und gezeigten Codebeispiele kann man auf Github nachvollziehen.
→ Bewertung auf joind.in & Slides
Doctrine — mehr als nur ein ORM
Einen Blick über den Tellerrand warf Andreas mit seinem Talk und stellte seinen Zuhörer/innen vor, welche Projekte neben dem bekannten ORM unter dem Doctrine-Projekt entwickelt werden. Neben den Bibliotheken, die elementare Funktionalitäten wie annotationsbasierte Konfiguration bereitstellen, und der Verwaltung von Datenbankmigrationen ging es unter anderem um das ORM-Schwesterprojekt ODM, mit dem man statt relationaler Datenbanken dokumentbasierte Alternativen wie MongoDB ansprechen kann. Damit wurde die Vielfalt des Doctrine Ökosystems verständlich aufgezeigt. Besonders spannend sind auch Andreas Informationen zu kommenden Entwicklungen von Doctrine. In den nächsten Monaten wird unter anderem eine vollständige Migration auf PHP 7 erwartet. Danke für diesen Einblick in Doctrines Roadmap.
→ Bewertung auf joind.in & Slides
Ein leistungsfähiger Development Workflow mit Kubernetes
Wenn man in seiner Entwicklungsumgebung Docker verwendet, ergeben sich daraus eine ganze Reihe neuer Probleme. Angefangen bei Abbildungsschwierigkeiten der Produktiv-Umgebung zur Entwicklungszeit bis hin zur Versionierung von Services und dem Reproduzieren von Bugs.
In seinem Talk ging Bastian auf diese Probleme ein und hat anschaulich, anhand diverser Demos gezeigt, wie Kubernetes nicht nur bei der Orchestrierung einer Live-Umgebung, sondern bereits während der Entwicklung eingesetzt werden kann. Dabei hat er eine ganze Sammlung von nützlichen Tools vorgestellt, die den Programmieralltag erleichtern können.
→ Bewertung auf joind.in & Slides
Content & Master Data Management mit Pimcore
Um ein Backend User Interface bereitzustellen sind gemeinhin zwei Möglichkeiten verbreitet: Entweder es muss ein neues Interface (mittels Scaffolding) für das spezifische PHP-Projekt entwickelt werden oder ein bereits bestehendes System muss an die neuen Anforderungen angepasst werden.
Beide Varianten sind äußerst umständlich, zeitaufwendig und erzielen oft nicht die gewünschten Ergebnisse. Christoph Lühr hat in seinem Talk die Lösung für das beschriebene Problem im Gepäck. Mit der Open Source Plattform Pimcore können auch komplexe Datenstrukturen bedient werden. In einer Live-Demo hat Christoph vorgeführt, welche CMS-, CRM-, E-Commerce- und Web2Print-Funktionen für eigene Projekte genutzt werden können.
→ Bewertung auf joind.in & Slides
How to F*ck up your Development team with Microservices
In seinem Talk hat Stephan seine persönlichen Erfahrungen bei der Umsetzung eines großen e-commerce-Projekts mittels Microservice-Architektur geteilt. Stephan zeigte dabei auch die Schattenseiten auf, die das Architektur-Paradigma mit sich bringt. Hohe Eigenverantwortung, Komplexität und jede Menge neue Technologien machen es Entwicklern, Administratoren und auch der Projektleitung schwer. Anschaulich schildert er die daraus folgende Unzufriedenheit im Team und die häufig unterschätzten Ressourcenaufwände.
Trotz aller Probleme hat sich Stephan dennoch überzeugt gezeigt, dass die auf Team-Autonomie und schnelle Veränderungen optimierte Microservice-Architektur Vorteile bringen kann und gab den Zuhörer/innen die Learnings aus seinen Projekten mit auf den Weg.
→ Bewertung auf joind.in
The How’s and Why’s of a Clean Git History
Das es extrem wichtig ist, Veränderungen an Code nachverfolgen zu können, findet Petr Heinz und zeigt in seinem Talk, wieso eine verständliche Code History jedem Entwickler das Leben leichter macht. Anhand einiger Best-Practices und fortgeschrittenen Git Techniken beweist er den Zuhörer/innen, warum sich der Extraaufwand final auszahlt. Petr hat gezeigt, wie ein guter Commit aussehen sollte und wie eine hilfreiche Commit Message erstellt wird.
Diese vier Tipps hat er für euch zusammengefasst:
#1 Clean code gibt es nur durch clean history
#2 Ein git commit ist immer atomar
#3 Inline comments bringen immer erhebliche Nachteile mit sich
#4 Git ist super. Nutzt es!
→ Bewertung auf joind.in & Slides
Develop Yourself — Ein Plädoyer für mehr Software Handwerkskunst
Softwareentwicklung sollte nicht nur stumpfes Code runterschreiben sein. Für Ole Rößner ist Coding ein Handwerk, das Training erfordert. Um diesem Leitgedanken zu entsprechen hat Ole den Kata Workflow & den Randori Workflow vorgestellt und damit seinen Zuhörer/innen praktische Methoden an die Hand gegeben, das regelmäßige Üben zu strukturieren und zu vereinfachen.
→ Bewertung auf joind.in & Slides
Security Testing
In seinem Talk hat Prof. Dr. Jan Jürjens ein nach wie vor brennendes Thema vorgestellt. Durch immer komplexer werdende Angriffe ist die Sicherheit von Webanwendungen gefährdet und sie müssen entsprechend dagegen geschützt werden. Jan hat gezeigt, wie Symfony als Framework Entwicklern die Umsetzung von Dingen wie Authentifikationen erleichtert und weitere nützliche Sicherheitsfeatures erklärt. Beim richtigen Einsatz der Tools verspricht er als Resultat eine sichere Webanwendung.
→ Bewertung auf joind.in
Success of Blackfire and Continuous PHP performance monitoring at trivago
Für trivagos Suche ist Performance ein kritischer Faktor. Durch hunderte Commits täglich und ähnlich vielen A/B-Tests ist das Finden von Regressionen, sowie das Suchen nach Optimierungspotential besonders anspruchsvoll. In seinem Talk hat Jorge Luis vorgestellt, wie trivago blackfire.io in ihre Pipeline integriert, Performance-Tests als Teil ihrer Builds durchführt und die gesammelten Daten auswertet.
Für alle, die daran interessiert sind die Performance ihrer Webanwendung kontinuierlich zu monitoren, lohnt sich ein Blick in die Videoaufzeichnung des Talks, um die Inhalte nochmals detailliert nachvollziehen zu können. Die Videos werden bald auf unserem YouTube-Channel veröffentlicht.
→ Bewertung auf joind.in & Slides
Nomes est Omen — Naming things considered hard
Die richtigen Bezeichnungen zu finden, ist für Entwickler immer wieder eine herausfordernde Aufgabe. Klassen, Funktionen und Variablen bekommen Namen, die persönlich und für andere Entwickler sowohl dauerhaft verständlich, als auch aufschlussreich sein müssen. Anne-Julia Seitz hatte tolle Tipps und Anekdoten zu dem Thema im Gepäck und erklärt die Do’s and Don’ts bei der Suche nach den richtigen Namen. Sie fasst es treffend zusammen: „Sobald ich mit dem Namen zufrieden bin, bin ich gewöhnlich auch zufrieden mit dem Design.“
→ Bewertung auf joind.in & Slides
Webpack Encore — Asset Management für den Rest von uns
An dem mächtigen Bundler Webpack kommt man bei der Erstellung von Assets kaum vorbei. Doch schon die Konfiguration erfordert akademische Kenntnisse der Interna. Eine einfache Lösung dafür hat Stefan Adolf in seinem Talk vorgestellt. Mit Encore bietet Symfony einen recht schmalen Wrapper um Webpack an, wodurch das Asset Building in verschiedenen Umgebungen funktioniert. In seiner Demo zeigt Stefan, wie Assetic mit Webpack und Encore ersetzt werden kann und dadurch ein React-basiertes Frontend für eine Symfony-Applikation entwickelt wird. Auch komplexere Anforderungen, wie die Verwendung von Plugins, Sourcemaps oder Chunks wurden nicht ausgelassen.
→ Bewertung auf joind.in & Slides
The Silex Sunset
Im Juli wurde die Entwicklung an Silex, dem Symfony-basierten Micro-Framework, eingestellt.
Auch wenn zuvor der Support für die Symfony 4-Komponenten sichergestellt wurde, müssen sich Projekte nun trotzdem Gedanken machen, wie sie das Framework zukünftig ablösen.
Alexander Turek schildert anhand seiner Migration des OpenCFP-Projekts von Silex zu Symfony 4, wie die Umstellung möglichst reibungsfrei funktionieren kann. Er hat gezeigt, wo Silex von Symfony abweicht und wie man eine Brücke schlagen kann, so dass eine Anwendung mit beiden Frameworks betrieben werden kann.
→ Bewertung auf joind.in & Slides
Using Symfony Forms with Rich Domain Models
Christopher und Christian von SensioLabs haben in ihrem Talk eine neue Lösung für eine Fragestellung vorgestellt, die immer wieder in Symfony Projekten auftaucht. Mehr und mehr Teams bevorzugen mittlerweile Rich Domain Models gegenüber anemischer Models. Diese Models, die häufig mit der Gestaltung einer Anwendungen nach den Prinzipien des Domain-driven Designs einhergehen, lassen sich allerdings nur über Umwege als Datenmodell eines FormTypes nutzen. Entweder muss mit DTOs oder DataMappern zusätzlicher Glue Code geschrieben oder Kompromisse beim Design des Models eingegangen werden. Das neu veröffentlichte Rich Model Forms Bundle löst dieses Problem mit der Implementierung neuer Form-Optionen, die eine Lösung auf Basis der DataMapper generalisieren. Ermöglicht wird dies durch die Erweiterung der Symfony Form Komponente. Dadurch wird die Flexibilität beim Aufruf lesender und schreibender Methoden erhöht, immutable Value-Objekte und Named-Constructor möglich und durch Exceptions können Formular-Fehler übersetzt werden.
→ Bewertung auf joind.in & Slides
Besucherspezifische Inhalte rasend schnell mit HTTP-Caching und Sulu
— “I really love the Varnish Configuration Language!” said no one ever — hat Thomas Schedler auf einer seiner Slides stehen. Um VCL den Schrecken zu nehmen, führt er die Zuhörer sehr detailliert durch seine mitgebrachten Beispiele. Damit zeigt er auf, wie es in Sulu möglich ist, verschiedenen Benutzergruppen unterschiedliche Inhalte auszugeben und diese weiterhin zu cachen. Nach seiner ersten Einführung in das HTTP-Caching, Symfony’s HttpCache und Varnish, hat Thomas nicht nur Informationen für Einsteiger zu bieten, sondern konnte auch erfahrenen Entwicklern zeigen, wie sich durch Optimierungen eines Proxy Caches die Serverlast minimieren lässt.
→ Bewertung auf joind.in & Slides
Die nächste SymfonyLive wird noch größer!
Im September treffen wir uns im MOA Hotel Berlin wieder. Diesmal für volle vier Tage! Darf man nicht verpassen? Finden wir auch. Tickets gibts hier.