IPC 09: Tag 2

by Michi on November 20, 2009

Und da ist er auch schon vorbei, der zweite Vortragstag der International PHP-Conference 2009 hier in Karlsruhe. Ich bin mittlerweile deutlich optimistischer gestimmt was den Anspruch und die Relevanz einer solchen Konferenz angeht, denn viele der Sessions waren wirklich gut.

Aber von vorne.

Der Erste Vortrag „Building configurable applications for the web“ wurde gehalten von so einem Yahoo!-News Fuzzi. Wirklich interessant, wie die Ihre Applikationen skalieren bzw. auf große Lasten ausrichten. Im Grunde werden einfach alle Bereiche einer Webseite in Module aufgeteilt (News-Artikel, related-links, Werbebanner, Kommentare etc..) und mit Prioritäten versehen. So ist zum Beispiel der eigentliche Newstext ja der Kern der Seite – hat also eine hohe Priorität – wo hingegen ein Bereich der weniger entscheidend ist (Related Links, Webebanner) durchaus nicht kritisch sind. Das Geheimnis liegt nun darin, diese Module konfiguriebar (konkret: abschaltbar) zu machen. Wenn nun (un)erwartet viel Traffic auf eine Seite einschlägt (beim Tod Michael Jackson waren es 33.000 PI in der Sekunde!!), kann man einfach niedriger priorisierte Module abschalten und so Ausführungszeit gewinnen. Simpel wie effizient.

Die zweite Speak zum Thema Softwaremetriken verstehen und Nutzen war ebenfalls sehr interessant. Jemand wer ich, der bis dato nicht wusste was Metriken sind (es aber hätte wissen sollen) wurde hier wirklich gut Bedient. Softwaremetriken sind halt einfach statistische Werte des Codes. Also wieviel Zeilen enthält das Programm (Lines of Code, LOC) wieviele davon sind Kommentare, wieviele tatsächlich ausführbar und so weiter. Weiterhin werden bestimmte mathematische Faktoren erläutert, die aus dem Code gelesen werden können. Beispiel dafür ist die „Cyclomatic Complexity“ die die Komplexität einer Methode als Zahlwert repräsentiert.
Diese Metriken dienen dazu, Code in Zahlen zu verwandeln und somit Codequalität zu messen. Das ist eben interessant bei einer Argumentation gegenüber Projekt-Managern, die nur mit puren Zahlen zu überzeugen sind.

Kurz vor dem Mittagessen gab es dann die Keynote über Webstandards. Ein Typ von Opera zeigte wirklich interessante neue Features von HTML5. Clientseitige Formularvalidierungen machen hier JavaScript beinahe unnötig. Auch das native <video> Element (dass der Firefox 3.5 mit einem ogg-Format ja schon unterstützt) bietet wesentlich mehr Vorteile als man vielleicht auf dem ersten Blick vermuten würde.

Dann wurde es etwas anstrengender. In der Session „Code sleeps smells“ ging es um Refactoring Prinzipien. Also wann wir refactored? Was wird refactored und wie wird refacored? Wenn man sich auch nur ein wenig mit PHP beschäftigt hat und für den Martin Fowler nicht der Hauptdarsteller aus Herr der Ringe ist, wird genau nichts interessantes neues erfahren. Leider  litt der Redner stark am 3L Syndrom (leise, langsam, langweilig) was dann in Kombination mit der ersten Session nach der Mittagspause extrem gefährlich war. Mitgenommen habe ich hier aber die „Boy scout rule“ von der ich in Clean Code schonmal geselen habe. Diese besagt dass man den Campingplatz [den Code] immer ein Stückchen sauberer hinterlassen soll als man ihn vorgefunden hat“. Treffend formuliert.

Die folgende Session „Sichere Applikationen auf Basis des Zend-Frameworks“ vom Security-Papst Stefan Esser war für mich persönlich die beste der Konferenz. Mir ist glaube ich noch nie so viel auf einmal klar geworden, wie in diesen Minuten der Session. Dafür erstmal ein Dankeschön an Stefan Esser. Ich benutze unserialize() jetzt unter ganz anderen Umständen. Auch habe ich sehr großen Respekt vor der Arbeit Essers. Irgendwann will ich auch mal so werden 😉

In „How to achieve more with less code“ von Stefan Priebsch ging es dann um „alltags-Code“, den jeder von uns oft benutzt und der auch viel kürzer, schneller und besser geht. Bestes Beispiel ist hier IMHO die möglichkeit, Arrays auch per Referenz zu „foreachen“. Sprich statt code bisher wie:

$array = array('one','two','three','four');
$result = array();

foreach($array AS $item) {
	$result[] = doSomethingWith($item);
}

return $result;

Kann man seit PHP5 auch:

$array = array('one','two','three','four');

foreach($array AS &$item) {
	$item = doSomethingWith($item);
}
return $array;

Das ist mir persönlich nicht neu, aber viele wissen davon nix. Unbedingt merken! Ganz interessant war auch der Ansatz HTML Formulare als DOMXML-Objekte zu parsen und dann mittels XPath ausdrücken dynamisch die Values zu setzen. Ganz ähnlicher Ansatz wie PHPTAL finde ich!

Leave your comment

Required.

Required. Not published.

If you have one.



Piwik encoutered an error: Uncaught exception 'Exception' with message 'Piwik and/or some plugins have been upgraded to a new version. --> Please run the update process first. See documentation: http://piwik.org/docs/update/ ' in /var/www/stats.mail.feinbier.net/html/plugins/CoreUpdater/CoreUpdater.php:73 Stack trace: #0 [internal function]: Piwik\Plugins\CoreUpdater\CoreUpdater->dispatch() #1 /var/www/stats.mail.feinbier.net/html/core/EventDispatcher.php(141): call_user_func_array(Array, Array) #2 /var/www/stats.mail.feinbier.net/html/core/Piwik.php(701): Piwik\EventDispatcher->postEvent('Request.dispatc...', Array, false, NULL) #3 /var/www/stats.mail.feinbier.net/html/core/FrontController.php(306): Piwik\Piwik::postEvent('Request.dispatc...') #4 /var/www/denkweite.de/html/wp-content/plugins/wp-piwik/classes/WP_Piwik/Request/Php.php(38): Piwik\FrontController->init() #5 /var/www/denkweite.de/html/wp-content/plugins/wp-piwik/classes/WP_Piwik/Request/Php.php(16): WP_Piwik\Request\Php->call('method=SitesMan...', 'http://stats.ma...', ' (which lead to: Session must be started before any output has been sent to the browser; output started in /var/www/denkweite.de/html/wp-includes/formatting.php/5075)