Symfony-Camp 2008 (II) – the day after

Ich habe nach meinem letzten Eintrag nicht mehr über das Symfony Camp gebloggt: Zum einen, weil ich den Vorträgen folgen wollte und zum anderen, weil ich mich abends lieber mit einem Bier in der Hand unterhalten wollte, anstatt vor dem Laptop zu hängen. Aber nun zu den Details.

Nach den ersten beiden Vorträgen am Donnerstag von Fabien, kam im Anschluß an die Mittagspause Dustin Whittle an die Reihe, der unter dem Titel “Lessons learned at Yahoo” über die Überlegungen bei Yahoo! berichtete, die zum Einsatz von Symfony in verschiedenen Yahoo!-Projekten führten. Ein sehr interessanter Einblick in die Arbeit von Yahoo!, die nun mal recht stark frequentierte Dienste anbieten 😉 Die Folien zu Dustins Vortrag gibt es hier (als PDF) und hier.

Fabian Lange stellte in seinem Vortrag “Full Stack Web Application Performance Tuning” die verschiedenen Methoden und Ansatzpunkte vor, die bei der Optimierung von (nicht nur Symfony-basierenden) Websites zu beachten sind. Ein hochinteressantes Thema, da es eine Menge Stellschrauben gibt, an denen zu drehen es sich lohnt. Es wäre nur sehr schön gewesen, wenn die einzelnen Folien nicht ganz so vollgepackt gewesen wären und die Schrift nicht so arg klein gewesen wäre. Ich saß nämlich recht weit hinten während Fabians Vortrag und ärgerte mich ein wenig war traurig, dass ich kein Opernglas zur Hand hatte 😉 So konnte ich die Folien (hier als PDF und natürlich auch bei Slideshare) erst hinterher richtig gelesen, nachdem sie im Netz veröffentlicht waren 😀

Jonathan Wage, Core Developer des OR-Mappers Doctrine, brachte uns die Vorteile von Doctrine nahe. Vor allem die – als Doctrine Query Language (DQL) bezeichnete – Notation zur Formulierung der DB-Abfragen in PHP kann – im Vergleich zum Criteria-Gebastel bei der Verwendung von Propel als OR-Mapper in Symfony – überzeugen. Die Folien des Vortrages gibt es hier.

Und damit näherte sich der erste Tag auch langsam seinem Ende. Die für diesen Tag abschließende Diskussionsrunde zur besseren Beteiligung der Community habe ich leider absichtlich verpasst, da wir ins Bed &Breakfast gefahren sind, um dort einzuchecken. Nachdem wir dort unser Zimmer bezogen haben fuhren wir wieder zurück zum Camp, um uns dem Barbeque und Bier zu widmen 🙂 Das BBQ war wieder reichlich vorhanden (und das Bier auch) und so konnte sich jeder ausgiebig mit den anderen Teilnehmernunterhalten oder halt auch Roulette oder Black Jack zocken. Es war nämlich ein kleines Casino eingerichtet worden, an dem man mit “Symfony Dollars” spielen konnte.

Der Samstag startete für uns mit einem Vortrag von Lambert Beekhuis, der über Plugins und deren Entwicklung informierte. Diesen Vortrag haben wir leider verpasst, da wir zu spät am Camp eintrafen. Sobald die Folien im Netz verfügbar sind, werde ich sehen, wieviel ich verpasst habe. Ich hoffe nicht zuviel, da ich letztes Jahr schon den Vortrag von Fabien Pontencier zum gleichen Thema gehört hatte. Update 15.09., 21:05 Uhr: Die Folien sind bei Slideshare zu finden.

Im Anschluß stellte François Zaninotto anhand seines neuen Symfony-Plugins DbFinder ein paar Dinge und Verfahrensmodelle vor, die vor allem bei der Entwicklung von Software für Software-Entwickler (also auch und gerade für Symfony-Plugins) wichtig sind. So fiel hier u.a. das Stichwort “Document Driven Development” (dokumentations-getriebene Entwicklung). Er arbeitete schön den gesamten Entwicklungs-Zyklus von der initialen Idee bis hin zur Veröffentlichung, Wartung und Erweiterung / Fehlerbehebung heraus. Leider sind hierzu die Folien auch noch nicht online. Update 15.09., 09:50 Uhr: Die Folien sind bei Slideshare zu finden.

Fabien Potencier zeigte uns vor der Mittagspause dann anhand einer kleinen Beispiel-Applikation auf, wie man am besten beim Refactoring bestehender Applikationen vorgehen sollte. Es kamen zwar relativ viele Aspekte zur Sprache, auf die normalerweise immer geachtet werden sollte, die aber oftmals im Tagesgeschäft gerne vergessen werden. So zeigte Fabien nochmal sehr schön, wie man für die vorhandene Applikation erst einmal die Test-Fälle erstellt, um im Rahmen des Refactorings sicher zu stellen, dass die (gewünschte) Funktionalität immer erhalten bleibt. Ich denke, dass es jedem klar wurde, dass das Testen über die in Symfony enthaltenen Möglichkeiten für Funktions-Tests besser und einfacher ist, als nach jeder Änderung das Ergebnis im normalen Webbrowser zu überprüfen.

Bei vielen der einzelnen Refactoring-Überlegungen und Schritten glaubte ich in den Gesichtern der Anwesenden ablesen zu können: “Ups, den Schnitzer habe ich auch in der ein oder anderen Applikation”. Er empfahl uns immer darauf zu achten, wo wir Datenbank-Abfragen platzieren oder auch die Daten des globalen User-Objektes abfragen. Es kann oft sinnvoller sein, die DB-Abfrage aus dem Controller heraus zu halten und lieber der entsprechenden DB-Klasse eine Custom-Methode hinzuzufügen, die dann im Controller mit einer Code-Zeile aufgerufen wird. Ebenso verhält es sich mit den Daten im User-Objekt. Auch hier empfiehlt es sich, die Klasse um eine zusätzliche Methode zu erweitern. Diese und auch die anderen Refactoring-Tips helfen den Code übersichtlicher und wiederverwendbar zu gestalten. Folien gibt es zu dem Track nicht, da Fabien (in einer stellenweise bemerkenswerten Geschwindigkeit) live alle Code-Erweiterungen und -Änderungen durchführte.

Die Mittagspause fand etwas später statt, da Fabien die Zeit doch arg überzogen hatte. Daher wurde die anschließende Pause ein wenig verkürzt und Ian Christian (aka Pookey) fuhr mit seinem Vortrag zu den Admin-Generatoren in Symfony fort. Es gab für mich wenig Neues in dem Vortrag, da wir in unserer Web-to-Print-Anwendung regen Gebrauch von den Admin-Generatoren machen. Ein wenig gewundert habe ich mich, warum im gesamten Vortrag nicht ein einziges ERD abgebildet war. Ein ERD hätte sich vielleicht ein wenig erhellender erwiesen, da ich bis eben nicht wusste, was “Barn” auf englisch bedeutet 😐 Wie dem auch sei: Die Folien hat Ian auf seiner Website veröffentlicht.

Mit Dustin Whittles Präsentation zur Yahoo! User Interface Library (YUI) erfuhr ich doch eine neue und für mich interessante Fakten. Ich hatte mich bisher noch nicht mit YUI beschäftigt. Vielleicht auch, weil ich den letztjährigen Vortrag von Dustin auf Grund eines parallelen Tracks verpasst hatte und aus den Folien nicht ganz so schlau geworden bin 😉 Auf jeden Fall werde ich mich mal intensiver mit YUI näher beschäftigen und auch mal einen Blick in das eine oder andere der vielfältigen Tutorials werfen. Ich hoffe, dass Dustin in den nächsten Tagen die Folien zu diesem sehr interessanten Thema online stellt. Nachtrag 15.09., 09:00 Uhr: Mittlerweile sind die Folien bei Slideshare zu finden.

Der letzte Vortrag des diesjährigen Camps kam von Stefan Koopmanschap. Er ging im Detail auf die Möglichkeiten zum Debugging von Symfony-Applikationen ein, die sich einem mit der Debugging-Toolbar von Symfony bieten. Interessant waren auch die Möglichkeiten, um die Toolbar u.a. mit eigenen Erweiterungen anzupassen. Dieses Feature gibt es erst seit Symfony 1.1 ruft geradezu danach, sich mit den Möglichkeiten zu spielen… Die Folien sind auch schon bei Slideshare verfügbar.

Dieser Blog-Eintrag ist jetzt doch wesentlich umfangreicher und damit länger geworden, als ich ursprünglich vor hatte. Daher folgt mein Fazit zum diesjährigen Symfony Camp im folgenden Blog-Eintrag.

Dieser Beitrag wurde unter Symfony, Symfony-Camp abgelegt und mit , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.