Kurzbericht zur SymfonyLive Cologne 2016
Die Konferenz wurde im KOMED im Kölner Mediapark veranstaltet. Mit rund 300 Teilnehmern hatte das Event eine für mein Empfinden angenehme Größe: Der Saal war gut gefüllt, trotzdem war es fast ein bisschen familiär. Das lag natürlich mit daran, dass das Event für uns praktisch vor der Haustür stattfand und wir viele bekannte Gesichter aus anderen Bonner und Kölner Agenturen, Softwarefirmen und nicht zuletzt der Symfony User Group Köln treffen konnten.
Es gab einen einzigen Track mit Vorträgen, was – positiv gesehen – die Entscheidung zwischen konkurrierenden Talks erspart. Aber nach 10 Vorträgen in 10 Stunden war ich abends spürbar erschöpft.
Hier also meine Kurzzusammenfassung der einzelnen Vorträge. Folien gibt es erst zum Teil online, sie lassen sich sicher in Kürze googlen. Ich gehe auch davon aus, dass es in einiger Zeit wieder die Videomitschnitte frei im Netz geben wird.
In seiner Keynote "Superhelden im Porzellanladen" zeigt Christian Schäfer, nach welchen Kriterien Entwickler auf Jobsuche Unternehmen beurteilen können. Daraus lassen sich interessante Rückschlüsse ziehen, welche Erwartungen im Hinblick auf Gehalt, Sicherheit, Spaß und Herausforderungen angemessen sind. Interessantes Takeaway: Das Unternehmen-Wachstumsmodell nach Greiner.
Bernhard Schussek, Lead-Entwickler der Symfony Form-Component, gibt in seinem Vortrag "Symfony Forms: Do's and Don'ts" zunächst einen Überblick über die wesentlichen Neuerungen und Umstellungen ab Symfony 2.7. Viele der Änderungen zielen dabei darauf ab, die mit Symfony im Backend erzeugten Formulare einfacher von JavaScript aus weiterverwenden zu können. Die zweite Hälfte brachte dann eine Reihe von Tipps und Empfehlungen, wie die verschiedenen Aspekte von Formularen (Validierung, HTML-Labels, …) zwischen Controller-Code und Views aufgeteilt werden können und wie sich die Form Component mit komplexeren Modell-Klassen zusammenbringen lässt, die z. B. nach dem Domain Driven Design-Paradigma entwickelt wurden.
"Maßgeschneiderte Testdaten mit Faker und Alice" von Philipp Rieber zeigt, wie einfach Faker "echt" aussehende Testdaten beispielsweise zur anfänglichen Befüllung von Demo-Datenbanken erzeugen kann. Mit Alice wird es einfach, solche Daten in YAML-Dateien zu beschreiben und dann mit Doctrine in Datenbanken zu laden. Ein interessanter Überblick, wenn man Faker und Alice noch nicht kennt – die Inhalte kann man sich dann aber auch schnell aus der Dokumentation aneignen.
Benjamin Eberlei stellt in "Go lernen für einen Symfony Websocket Proxy" zunächst die Vor- und Nachteile der "shared-nothing"-Architektur von PHP gegenüber. Für den Anwendungsfall asynchroner oder lange laufender Kommunikation begründet er damit dann, warum sich der Einsatz von anderen Sprachen wie Go oder Node.js besser eignet. Es folgt ein Go-Crash-Kurs, in dem ein kleiner Websocket-Proxy entsteht. Dieser erlaubt es, von einer Symfony-Anwendung aus Push-Nachrichten an eine große Anzahl gleichzeitig aktiver Websocket-Clients zu schicken. Auf jeden Fall eine technisch interessante Idee!
Kore Nordmann zeigt in "Wie wir Code analysieren" den Quality Analyzer, der bei Code Reviews Hinweise auf kritische Codestellen geben soll. Er verarbeitet dazu unter anderem die Metriken anderer Tools und versucht daraus abzuleiten, welche Stellen bei Änderungen potenziell Auswirkungen auf andere Teile der Anwendung haben. Am wichtigsten war mir persönlich eine Bemerkung von Kore im Rahmen des Fazits: Jede Zeile Code, sei sie auch noch so schlecht, ist nicht mit der Absicht entstanden, den heutigen Entwicklern das Leben schwer zu machen – sondern als Ergebnis der damaligen Situation mit eventuell hohem Zeitdruck, unzureichendem Können, anderen Anforderungen und ähnlichem. Eine Einsicht, die leider oft fehlt.
In "Modernisieren mit Symfony" von Alexander Turek ging es um eine Möglichkeit, wie sich alte PHP-Anwendungen mit Symfony verbinden lassen, um so eine schrittweise Migration zu ermöglichen. Die Ansätze waren altvertraut, wir haben selbst schon darüber berichtet.
Christoph Reinartz berichtet in "Pattern Library meets Symfony", wie das Team bei trivago eine Pattern Library entwickelt hat und welche Ansätze es gibt, um diese Komponenten allen Entwicklungsteams zur Verfügung zu stellen. Ein unterhaltsamer und humorvoller Vortrag, der viele spontane Lacher und Applaus bekommen hat. Leider gab es aber wenig Aufschluss darüber, wie genaudas Ganze jetzt funktioniert und mit welchen Tools das Projektteam dabei gearbeitet hat.
Christian Flothmann gab in "FOSRest 2.0" einen Überblick über die Möglichkeiten und Neuerungen des FOSRestBundle 2.0. Ein Blick in das Changelog dürfte die Inhalte gut zusammenfassen.
Jan van Thoor erzählte in "Open Heart Surgery (In Production)" eine Reihe unterhaltsamer "war stories": Wie lässt sich eine geschäftskritische, gewachsene Anwendung, die noch dazu einer hohen Änderungsrate unterworfen ist, schrittweise aufräumen, entkoppeln und mit Tests untermauern? Das Ganze war mit vielen Codebeispielen aus der echten Codebasis von trivago.de unterlegt. Ich persönlich war überrascht, wie schlimm solche großen Systeme unter der Haube wirklich aussehen können.
Marco Pivetta, der aktuelle Release Manager des Doctrine Projects, gab in "Doctrine ORM Good Practices and Tricks" viele wertvolle Denkanstöße für objektorientiertes Design (OOD) im Allgemeinen und über das Doctrine ORM hinaus. Es ist schön zu sehen, dass viele Ideen des Domain Driven Design langsam in der PHP-Welt ankommen und es inzwischen einige renommierte Speaker gibt, die auf hohem Level über OOD sprechen können. Dieser Talk (und übrigens auch andere Vorträge von Marco wie dieser) ist definitiv die Zeit wert, setzt aber auch schon etwas Entwicklungserfahrung voraus.
Erfahren Sie mehr über unsere Leistungen als Symfony Agentur.