Facebook
Twitter
Google+
Kommentare
4

International PHP Conference 2010 – Teil 2

Als Ergänzung zum ersten Teil meines International PHP Conference (kurz IPC) Berichts, kommt hier der zweite Teil. Ich möchte euch hier über den zweiten und dritten Tag eine Zusammenfassung meiner besuchten Vorträge geben, sowie mein persönliches Fazit der Koferenz 🙂

Tag 2

Am zweiten Tag der Konferenz hatten nun auch die Aussteller ihre Stände aufgebaut, wo runder auch die Sponsoren wie zum Beispiel Zend, Oxid, Mayflower oder Microsoft waren. Ich hatte die Chance genutzt, um ein paar Leute wiederzusehen und neue kennen zu lernen. Folgende Vorträge habe ich mir an diesem Tag angesehen:

Der erste Vortrag direkt um 9 Uhr (hatte ihr erwähnt, dass der Abend nicht unbedingt kurz war?) habe ich mir „Practical PHP Refactoring“ von Stefan Priebsch (thePHP.cc) angehört. In seinem Vortrag hat Stefan anschaulich einige Refactoring Methoden gezeigt und wie man dadurch den Code dadurch verbessert. Dabei geht es beim Refactoring darum, durch kleine Codeoptimierungen den Quellcode unter anderem lesbarer, schneller oder wartbarer zu machen, ohne dessen äußere Schnittstelle (also die API) zu verändern. Als Daumenregeln hat er folgende drei Punkte genannt, ab wann man seinen Code refactoren soll:

  • Redundanzen entfernen
  • Codeblöcken kürzen (braucht Ihr länger als 30 Sekunden, um die Funktion zu verstehen?)
  • Aufgaben separieren (Eine Methode sollte nur eine Funktion besitzen. Lässt sich also die Funktion der Methode mit einem Satz beschreiben ohne ein „und“ zu verwenden?)

Am Ende hat er noch ein paar Tipps gegeben, wie man Refactoring an seinen Chef verkaufen kann:

  • Geht zum Auto eures Chefs und macht einen Kratzer in dessen Fahrertür. Wenn eurem Chef der Kratzer aufgefallen ist, fragt ihm, ob er diesen reparieren lassen möchte? Er dies vermutlich bejahen und fragt ihn danach, nach dem Grund. Er wird sagen, dass es unschön ist oder dass dadurch die Stellen anfangen kann zu rosten. Danach fragt ihn, warum er dies dann nicht beim Code erlaubt, bevor dieser anfängt zu „rosten“?
  • Fragt eurem Chef, ob dieser ein Lieblingsrestaurant hat. Erzählt im dann, ob er weiß, dass es in der Küche Kakerlaken gibt. Denn seit dem sie rausgefunden haben, dass es egal ist, ob man die Küche aufräumt oder nicht und die Speisen sich weiterhin gut verkaufen, haben sie aufgehört die Küche aufzuräumen. Doch irgendwann werden die Kakerlaken rauslaufen, was für das Restaurant eine Katastrophe wäre. Danach vergleicht die Situation mit Code und fragt, warum ihr eure „Kakerlaken“ nicht entfernen dürft?

Der nächste Vortrag war von Sebastian Bergmann (thePHP.cc) und es ging um das Thema „Agility and Quality„. Sebastian ging in seinem Vortrag darauf ein, dass Agile Entwicklung unabdingbar für die Code Qualität ist. Denn zur agilen Entwicklung gehören Dinge wie zum Beispiel Test Driven Development , Continuous Integration, Continuous Deployment so wie die gemeinsame Verantwortung für Quellcode. Als Bespiele hat er gezeigt,wie TEsts auch als Dokumentation dienen können, wie Metriken die Entwicklung unterstützen. Als unterstützende Tools  wurden unter anderem PHP_CodeSniffer, PHP Mess Detector, aber auch Tools wie pfff 😉 Eine Liste von interessanten Tool gibt es auf http://phpqatools.org. Was man bei dem Talk wieder gemerkt hat, ist dass einige Leute ohne die heutige Tools nicht mehr auskommen. In dem Raum gab es leider kein Mikrofon (war glaube ich defekt) und so dass Sebastian den Talk ohne halten musste. Da kommt es schon mal vor, dass die Stimme nicht durchgehend die letzten Reihen im Raum erreicht. Aber anstelle offen zu sagen, dass er bitte etwas lauter reden soll, wurde das Ganze lieber getwittert …

Da ich heute bereits einen agilen Tag hatte, dachte ich mir, dass ich mit „Continuous Improvement in PHP“ von Thorsten Rinne (Mayflower GmbH) weiter mache. In dem Vortrag hat Thorsten erklärt, was Continuous Improvement ist und wozu dieses gut ist. Dabei es um einen Prozess, ständig kleine Verbesserungen vorzunehmen, als im Nachhinein größere Anpassungen. Er hat ein paar Beispiele gezeigt und wie man der Prozess funktioniert und unterstützt werden kann.

Als Keynote hat André Morys (Web Arts AG) was zu „Life, the Internet and Everything (A short Story about Users, Money and the Maening of the Web.)“ erzählt. Der sehr unterhaltsame Vortrag hat sehr anschaulich gezeigt, warum man mehr auf seine Kunden bzw. die Leute im Web hören und lieber die Entscheidung ihnen überlassen sollte und nicht einfach glauben, man wüste alle besser 😉

Als nächsten Vortrag habe ich mir „Doctrine 2: Next Generation ORM“ von Benjamin Eberlei (direkt effekt GmbH) angehört. In seinen Vortrag hat Benjamin Doctrine 2 vorgestellt und einige Beispiel gezeigt. Es macht nicht immer Sinn ein ORM (Object-Relational Mapping) zu verwenden, aber sollte man es doch brauchen, so kann ich nur empfehlen sich Doctrine 2 anzuschauen. Es bedarf keine bestimmen Elternklassen, unterstützt die gängigen relationalen Datenbanken, wie zum Beispiel MySQL, PostgreSQL, Oracle und SQListe, aber auch die Unterstützun von NoSQL Datenbanken ist aktuell in der Entwicklung. Das Besondere für mich ist aber die Doctrine Query Language, welche es es erlaubt SQL ähnliche Abfrage zu definieren. Dies hat den Vorteil, dass man keine größeren Konstrukte zum Zusammenbauen von Abfragen hat, sondern ähnlich wie beim SQL einen gut lesbaren Ausdruck. Als Ergänzung gibt es noch ein Event Hook System sowie einige Erweiterungenm welche zum Teil aus der Community stammen.

Der letzte Vortrag an diesem Tag war „Ran an den Klienten – ein Cache-Plug-in für mysqlnd“ von Ul Wendel (MySQL Gmbh, Sun Microsystems GmbH). Ulf hat an Beispiel einer Oxid eCommerce Shop Cummunity Edition gezeigt, wo und womit man auf seitens der Datenbanken optimieren bzw. cachen kann. Als Grundlage diente hier der neue mysqlnd Driver, welcher seit PHP 5.3 standardmäßig mit ausgeliefert wird. Dieser dient als Ersatz für die alte MySQL Client Library. Mysqlnd hat den Vorteil, dass diese als native PHP Erweiterung geschrieben wurde und somit die Resource und Einstellungen von PHP selber nutzt. Zum Cachen von Queries wurde die (aktuell in Entwicklung befindliche) Erweiterung mysqlnd Query Cache (mysqlnd-qc) verwendet, welche native ohne PHP Code Anpassung funktioniert. Zusätzlich gibt es eine Plugin Schnittstelle, welche es erlauben sich mit in C geschriebene Plugins einzuklingen. Wem das zu aufwendig ist, kann sich auch mal den mysqlnd User Handler (mysqlnd-uh) anschauen, welche die Verwendung von Plugins in Form von PHP Skripten erlaubt. Dies war übrigens der erste Vortrag mit Werbeunterbrechungen 😉

Abends gab es noch vor der Party einen „PHP Night Talk“, in dem es eigentlich um die Zukunft von PHP gehen sollte. Doch da auch Fragen über Twitter zugelassen und per Beamer direkt an die Wand projeziert wurden, entwickelte es sich mehr zu einer Comedy Vorstellung 😉 Wer das ganze nach lesen möchte, kann sich durch die Tweets zum Hashtag #ipc10 durchwühlen 😉

Tag 3

Auch an diesem Tag habe ich mich wieder für euch aufgerafft und bin direkt um 9 Uhr zum ersten Vortrag „State of the Mocks“ von Sebastian Bergmann (thePP.cc). In seinem Vortrag hat Sebastian den aktuellen Stand zum Thema Stubbing und Mocking vorgestellt. Stubbs sind Ersatzobjekte, welche beim testen bestimmte Funktionalität vorgetäuscht werden. Bei Mocks handelt es sich um Objekte, welche ein bestimmtes Verhalten der zu testende Klasse erwarten und diese in den Test mit einbeziehen. Gezeigt wurde, wie man mittels Mockobjekte das erwartete Verhalten wie Rückgabewert, Parameter oder zu werfende Exceptions. Da die aktuelle Version ein paar Unschönheiten wie zum Beispiel unnötige Parameter hat, wurde hier auch der MockBuilder vorgestellt. Mittlerweile gibt es auch Alternativen zu den PHPUnit Mock Objekten, welche hier auch vorgestellt wurden. Dabei wurde Mockery und Phake vorgestellt. Beide befinden sich aber noch in der Entwicklung und sollten somit mit Vorsicht verwendet werden, wobei hier von beiden Mockery empfohlen wurde, falls man sich diese mal ansehen möchte.

Der nächste Vortrag auf meiner Liste war „MySQL Query Tracing and Profiling“ von Johannes Schlüter (Sun Microsystems). Johannes hat gezeigt, wie und mit welchem Mitteln man in MySQL seine Anwendung bzw. seine Abfragen profilen kann. Hier bei ist der erste Schritt mittels Xdebug erst mal zu prüfen, wo überhaupt der Flaschenhals in der Anwendung liegt. Wird viel Zeit für Datenbankabfragen verwendet, so gibt es nun ein paar Möglichkeiten, diese zu analysieren. Dabei stehen Tools wie MySQL Proxy, DTrace oder MySQL interne Funktionalitäten zur Verfügung. MySQL bietet hier zum Beispiel das Slow Query Log, Profiling oder ab MySQL 5.5 auch das Performance Schema. Als kommerzielle Tools stehen sonst noch MySQL Query Analyser und MySQL Enterprise Monitor zur Auswahl.

Weiter ging es danach mit „How to scale a PHP Application“ von Jan Burkl (Zend Technologies GmbH). Jan hat sich in seinem Vortrag speziell dem Thema Session Handling beim Clusting gewidmet. Dabei hat er fünf Lösungen mit deren Vor- und Nachteilen vorgestellt: Network File System (kurz NFS), Datenbank, Memcached, Redis und Zend Server Cluster Manager. Natürlich am Ende der Zend Cluster Manager am besten amgeschnitten, aber jeder muss für sich entscheiden, ob es für ihn die beste Lösung ist 😉 Für mich jedenfalls war es in sofern interessant, dass ich mir mal Redis als Memcached Ersatz angucken werde 😉

Als Keynote standen heute zwei zur Auswahl, einmal „Cloud Rush“ und „PHP – Yesterdays Scala and the Cobol of tomorrow?“ von Pierre-A. Joye (Microsoft) und Johann-Peter Hartmann (SektionEins GmbH). Ich habe mit für die PHP Keynote entschieden und muss sagen, dass war eine geniale Keynote! Die beiden sind drauf eingegangen, warum PHP erfolgreich geworden ist, warum es immer noch erfolgreich ist und warum es weiterhin noch eine Zeit lang erfolgreich sein wird. PHP hat zwar seine Macken und manchmal fragt man sich, wie noch mal der ein oder andere Funktionsaufruf ist bzw. warum dieser nicht einfacher ist. Doch der Vorteil von PHP ist nicht nur die Einfachheit, sondern vor allem auch, dass es für alles eine Erweiterung gibt. Es gibt Erweiterungen für relationale Datenbanken, NoSQL Datenbanken, verschiedene andere Speichersysteme und auch andere Dinge, welche von Anfang an für PHP Entwickelt werden. Das gleiche Trifft auch für Schnittstellen (APIs) von größeren Platformen wie Facebook oder Twitter zu. Die meisten bis alle bieten fertige Klassen und Beispiele in PHP. Welche andere (Web)Programmiersprache kann das von sich behaupten? 🙂

Als nächstes habe ich mir den Vortrag „Would you like Docs with that?“ von Stefan Koopmanschap angehört. Stefan hat ausführlich gezeigt, was man dokumentieren kann bzw. sollte und welche Arten von Dokumentation es gibt, wie zum Beispiel API Dokumentation, User Manual, Unit Tests, Commit Messages oder auch Tutorials.

Zum Abschluss der Konferenz habe ich mir den Vortrag von Derick Rethans zum Thema „Geolocation and Maps with PHP“ angesehen. Derick hat sehr anschaulich die Probleme mit der Geolokalisierung und der verschiedenen Systeme dargestellt, um danach die verschiedenen System wie Google Maps, Yahoo! PlaceFinder und OpenStreetMap anhand verschiedener Beispiele gezeigt. Dabei ging es um zum Beispiele das Auffinden von Positionen anhand von Geodaten oder Adressdaten, die Umkreissuche von bestimmten Adressen und die Anzeige zusätzlicher Informationen wie Bilder oder Strecken. Meistens hat er sich dabei auf OpenStreeMap konzentriert und damit gezeigt, wie umfangreich der gesammelten Daten ist.

Fazit

Für mich war es insgesamt die zweite Internationale PHP Conference und für mich hat es sich wieder gelohnt, auch wenn es schon recht anstregend war, da ich ja nicht zum Vergnügen da war und somit sie viele Vorträge wie möglich mit genommen habe ;-). Ich habe viele Leute wiedergesehen, neue Leute kennengelernt, eine Menge Spaß gehabt. Was man leider an den Vorträgen merkt ist, dass diese zum Teil „gesponsort“ sind, aber im großen und ganzen doch sehr interessant waren. Ich habe einige neue Ideen mit nach hause genommen und hoffe, dass ich mit meinem Bericht euch auch neue Anreize bieten konnte. Wer also Interesse hat bekannte nationale und internationale Leute aus der PHP Szene kennen zu lernen, interessante Vorträge zu hören oder den Kontakt zu der einen oder anderen bekannten Firma knüpfen möchte, der sollte versuchen auf die nächste Internationale PHP Conference 2011 Spring Edition in Berlin zu kommen. Wer sich den Eintritt nicht leisten kann oder möchte, der kann versuchen seinen Chef zu fragen. Es werden auch einige kostenlose Tickets oder Ermäßigungen für zum Beispiel Blogger angeboten. Ansonsten bleibt einen die Möglichkeit seinen eigenen Vortrag einzureichen 🙂

PS: Ich habe versucht alle Links zu den Vorträgen zusammen zu suchen, doch leider habe ich noch nicht alle gefunden. Wenn Jemand also einen fehlenden Link hat immer her damit 🙂

Über den Autor

Sven Kiera

Ich bin PHP und Java Programmierer aus Leidenschaft. Durch das Programmieren in verschiedenen Programmiersprachen musste ich immer wieder feststellen, welche Vor- und Nachteile diese beiden haben oder anders ausgedrückt: Ich habe beide Sprachen lieben und hassen gelernt. Für mich persönlich gibt es keine "beste" Programmiersprache, sondern es gibt nur die beste Lösung für ein Problem. Beruflich arbeite ich in einer größeren Internetagentur in Düsseldorf und bin dort mitverantwortlich für die Umsetzung größerer Internetportale. Privat habe ich das Projekt PHP Tool Integration (kurz PTI) gestartet, in welches in nun meine meiste Freizeit investiere. Wer mehr zu diesem Projekt wissen möchte, kann meine Homepage besuchen oder einer meiner Vorträge. Und sollte ich dazwischen noch Zeit haben, so versuche ich hier bei PHP hates me zu bloggen.
Kommentare

4 Comments

  1. Dieser Bericht gibt jedem neue Anreize um die Tagungen zu besuchen. Es ist immer wichtig neue Kontakte zu knüpfen und sein Unternehmen zu vermarkten. Vor allem hilft es sein vorhandenes Wissen zu erweitern.

    Reply
  2. Die IPC10 war meine erste IPC und von den Vorträgen her ich es eher langweilig und wenig anspruchsvoll – da hätte ich wirklich mehr erwartet.

    Das Networking und der eine Saufabend war natürlich spaßig 🙂

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen