Facebook
Twitter
Google+
Kommentare
0

Softwarequalität in PHP Projekten

Ein deutsches PHP Buch zum Thema Softwarequalität, von wem könnte das wohl sein? Von den 20 großen PHP-Experten in Deutschland sind mindestens 8 an dem Buch Softwarequalität in PHP Projekten beteiligt. Autoren sind Sebastian Bergmann und Stefan Priebsch, aber es gibt auch große Co-Autoren-Kapitel von Benjamin Eberlei (direct:effekt), Tobias Schlitt, Kore Nordmann und Manuel Pichler (alle drei Qafoo GmbH), Lars Jankowfsky (swoodoo) und Arne Blankerts (thePHP.cc). Alles bekannte Namen auf PHP Konferenzen. Weitere Kapitel stammen von Robert Lemke und Karsten Dambekalns (beide TYPO3 Association), Christiane Philipps und Max Horváth (beide VZnet Netzwerke) sowie Sebastian Nohn (Ligatus GmbH) und Jens Grochtdreis.  Aber auch einige englisch sprachige Experten kommen zu Wort, beispielsweise Matthew Weier O’Phinney (Zend), Fabien Potencier (Sensio Labs), Brian Shire (Facebook) und Michael Lively Jr (SellingSource). Das Geleitwort stammt von Andi Gutmans (CEO von Zend).

Wer da nun keine Lust hat zu Lesen, dem ist wohl nicht zu helfen ;-)

Das Buch wird auch bald (April 2011) auf Englisch erscheinen, es gibt auch eine Webseite zum Buch. Die Übersetzungen der englisch sprachigen Autoren im deutschen Buch ist durchweg sehr gut, es liest sich alles sehr flüssig und ist mit Beispielcode und Bildern gut veranschaulicht, also recht praxisorientiert, wobei natürlich auch die Theorie dahinter nicht zu kurz kommt. Ein sehr guter Mix.

Im ersten Teil gibt es einen Überblick über die Software-Qualität. Was ist das, wie kann man es messen und bewerten, warum ist eine hohe Qualität zwar anfangs teurer, aber hinterher auf jeden Fall die Mühe wert, und wie erklärt man seinem Chef diese anfänglichen Zusatzkosten und Zeitaufwände am besten?

Nach dem Überblick über die verschiedenen Arten von Systemtests und Unit-Tests sowie einer großen Anzahl von Codebeispielen aus der Praxis sind die Grundlagen abgearbeitet, es geht an die Best Practices.

Der zweite Teil beinhaltet dann die ersten drei Fälle aus der Praxis der weiteren Autoren. Die 13 jährige Geschichte von TYPO3 und den damit verbundenen Problemen mit der Software bilden das dritte Kapitel. Benjamin Eberlei zeigt im vierten Kapitel allgemeine Bad Practices und Test-Smells, die häufig zu finden sind. Das fünfte Kapitel beschreibt die Geschichte von Digg, das Projekt das von einem Entwickler geschrieben wurde und mittlerweile mit über 70 Angestellten und über einer Millionen Zeilen Code zu einer sehr bekannten Seite geworden ist. So etwas geht natürlich nicht von heute auf Morgen und nicht ohne Probleme.

Matthew Weier O’Phinney beschreibt im sechsten Kapitel die Probleme bei der Erstellung der Zend_Service_* Klassen des Zend Frameworks und welche Fallstricke es bei der Erstellung von serviceorientierten APIs zu bewältigen gibt. Weiter geht es mit dem WebDAV-Server aus der Zeta-Components Library, gebannt liest man von Tobias Schlitt wie dieses unbändige Monster gezähmt wurde.

Fabien Potencier berichtet in Kapitel 8 vom Testen von Symfony und Symfony Projekten. Wenn sich jemand mit diesem beliebten Framework auskennt, dann wohl der Schöpfer selbst. Wie man Grafikausgaben am besten testet zeigt uns Kore Nordmann im folgenden Kapitel, wo der Aufbau der Tests zu ezcGraph aufgezeigt wird.

Das Testen von Datenbank-Interaktionen bedarf auch genauer Kenntnisse und guten Strategien, die im 10. Kapitel erläutert werden. Darin erklärt Mike Lively die Nutzung der Datenbankerweiterung von PHPUnit und gibt eine Lösung, wie man seine Datenbankschicht testen kann ohne seine Testsuite unerträglich langsam zu machen.

Der 5. Teil beinhaltet Kapitel zur Qualitätssicherung bei studiVZ, Vorteile und Details zur Kontinuierlichen Integration sowie das Vorgehen bei der swoodoo AG.

Im letzten Teil wird auf nichtfunktionale Aspekte eingegangen, denn nicht nur die Qualität des Codes ist wichtig, auch das Erlebnis des Besuchers bzw. Benutzers. Dabei gibt es eine Menge Dinge zu beachten, die man auf Codebasis nicht messen kann, aber häufig über Erfolg oder Misserfolg entscheiden. Dazu gehört sowohl die Gebrauchstauglichkeit, das Design mit all seinen Facetten, die Benutzerführung. Der Performanz werden viele Seiten gewidmet ebenso wie der Sicherheit einer Anwendung. Hier ist garantiert für jeden noch etwas dabei das er noch nicht kannte, auch wenn man sich mit diesen Themen schon intensiver befasst hat.

Eine sehr schöne Sache ist das kostenlose eBook, das man zusätzlich zum Buch herunterladen kann. Dazu muss man sich einen Account bei ciando erstellen und dann (falls noch nicht vorhanden) Adobe Digital Editions installieren (wofür man noch einen Adobe-Account benötigt falls man die eBooks auch auf anderen Rechnern oder nach einer Neuinstallation lesen können möchte). Insgesamt leider doch recht aufwändig, aber wahrscheinlich nötig.

Leider gab es auch einige Fehler (meistens kleinere Rechtschreibfehler), von denen ich 12 gefunden habe. Für 479 Seiten in der Erstauflage ist das aber noch im grünen Bereich denke ich. Schade dass ich kein Rezensionsexemplar bekommen habe, ich hatte mich im Vorhinein danach erkundigt. Vielleicht ja beim nächsten Mal ;-)

Der Preis von 49,90€ ist auf jeden Fall gerechtfertigt, solche Einblicke in Projekte und Firmen bekommen man nicht oft, es werden aufkommende Probleme gezeigt und Best Practices wie damit umzugehen ist erläutert. Beruhigend ist auch, dass man in den Kapiteln, in denen der Werdegang eines Projektes der letzten Jahre beschrieben wird, zu Lesen bekommt dass alle mal klein angefangen haben und niemand direkt die perfekte Lösung kannte. Es geht darum Probleme zu sehen, zu analysieren und zu beseitigen, um die Qualität hoch zu halten und weiter zu steigern. Und was kann da mehr helfen als aus den Fehlern anderer zu lernen?

Über den Autor

PHP Gangsta

Der zweitgrößte deutsche, eher praxisorientierte PHP-Blog von Michael Kliewe veröffentlicht seit Mitte 2009 Artikel für Fortgeschrittene.

Link erfolgreich vorgeschlagen.

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