Bastian's Blog

Bastian's Blog

Info | HTML | Text | RSS

Buchbesprechung - Softwarequalität in PHP-Projekten

Deckblatt des Buches "Softwarequalität in PHP-Projekten".Deckblatt des Buches "Softwarequalität in PHP-Projekten".

Sebastian und Stefan als Autoren des Buches Softwarequalität in PHP Projekten haben sich eine Reihe von Co-Autoren gesucht, um eine nicht ganz einfache Aufgabe zu meistern. Diese bestand darin, ein Buch über die aktuellen Probleme und Fallstricke der Entwicklung von Qualitätssoftware zu verfassen. Unter den Autoren sind Größen wie Kore Nordmann, Manuel Pichler und Tobias Schlitt, der qafoo GmbH, Lars Jankowsky, CTO der swoodoo AG, Benjamin Eberlei, direct:effekt GmbH, und Arne Blankerts, thePHP.cc, um nur einige zu nennen.

Das Buch selber erstreckt sich über sieben Teile und insgesamt sechszehn Kapitel. Die einzelnen Teile des Buches gliedern die einzelnen Kapitel in grobe Themenbereiche. Das sind z.B. Grundlagen, Best Practices, Server und Services oder nichtfunktionale Aspekte zur Sicherung der Qualität. Die Kapitel sind je nach Schwerpunkt den einzelnen Teilen zugeordnet und sind überwiegend von den Co-Autoren verfasst.

Schauen wir uns einige Kapitel mal im einzelnen an. Nur einige? Ja, zum Einen bin ich der Meinung, alle Kapitel das Buches im Detail zu beleuchten sprengt den Rahmen einer Rezension bei weitem, und ausserdem will ich dem Buch ja nicht die Spannung nehmen und alles schon verraten.

Kapitel 1 - Software-Qualität

Dieses Kapitel schafft eine solide Grundlage zum Verständnis von Software-Qualität. Anhand von ausführlichen Erklärungen werden einige Begriffe, wie Software-Metriken und Testbarkeit eingeführt. Des weiteren werden einige Tools - Entwickler lieben Tools - vorgestellt, die einem die tägliche Arbeit und das Überprüfen der Qualität seiner Software ermöglichen oder einfacher machen. Alles in Allem gibt dieses Kapitel dem Leser einen guten Einstieg in die kommenden Kapitel.

Kapitel 2 - Testen von Software

Aus der Feder von Sebastian und Stefan entsprungen, führt dieses Kapitel in die Grundlagen des Software-Testens ein. Dabei beleuchtet es alle seinen wichtigen Aspekte und übernimmt das Erklähren von Begriffen. Wie schon das erste Kapitel schafft es eine Basis für den Leser, die folgenden Kapitel im Detail zu verstehen, ohne, dass die Co-Autoren zu weit ausholen müssen, ihr Problem oder ihre Lösung verständlich zu erklären. Besonders gelungen ist hier die Art der Einführung und Erklärung von Unit-Tests, anhand eines Beispiels aus ihrer langjährigen Praxis. Dabei verlieren sie sich nicht in Einzelheiten oder Unwichtigkeiten, sondern zeigen klar und verständlich, worum es in Moment eigentlich geht. Ausserdem machen sie während des Aufbaus des Beispiels den Umweg über typische Fehler, um diese mit gezielten und plausiblen Erklärungen zu berichtigen. Selbst für den 'alten Hasen' ist das Kapitel empfehlenswert zu lesen. Und für den Test-Evangelisten eine Quelle für neue Argumente.

Kapitel 4 - Bad Practices in Unit -Tests

Von Benjamin Eberlei geschrieben, behandelt dieses Kapitel die Schattenseiten testgetriebener Entwicklung. Er zeigt in geduldiger Weise die größten Schwächen von Softwaretests und bietet Hilfe und Lösung, wie man diese umschifft, erkennt und behebt. Er geht im Detail darauf ein, warum eine bestimmte Vorgehensweise nicht zielführend ist. Dabei bleibt er immer klar und verständlich, auch, wenn das Problem manchmal etwas komplizierter ist. Zur Verdeutlichung seiner Thesen zieht er Beispiele aus etablierten Bibliotheken und Rahmenwerken, wie dem Zend Framework oder den zeta components, die zur Drucklegung noch ez components hießen, heran. Netterweise entschuldigt er sich vorher bei den Entwicklern dieser Beispiele. Nachdem Benjamin einige echte Schätzchen an Hässlichkeit ausgegraben hat, fällt sein Fazit dennoch moderat aus. Er ermahnt darin den Leser nochmal eindringlich, auf die beschriebenen Probleme und Test-Smells zu achten und diese wo möglich zu verhindern.

Kapitel 6 - Testen von serviceorientierten APIs

Für mich neben den Test-Smells von Benjamin im Moment das aktuellste Thema. Dieses Kapitel ist von Matthew Weier O'Phinney, Mister Zend Framework persönlich, geschrieben. Matthew schreibt in diesem Kapital direkt aus dem Nähkästchen von Zend. Er beschreibt, wie bei Zend die 3 großen Probleme zum Testen von Webservices angegangen und gelöst worden. Matthew beschreibt dabei nicht nur die aufgetretnen Probleme in verständlicher Weise, sondern auch die gefunden Lösungen dafür. Was mir an dem Kapitel besonders gefallen hat, sind die ausführlichen Beispiele. Diese machen es dem Leser sehr einfach, die Gedankenwege nachzuvollziehen und die Lösungen zu verstehen.

Kapitel 12 - Kontinuierliche Integration

Nun ist es ein leichtes zu behaupten, dass man qualitativ hochwertige Software erzeugt. Aber wie misst man Software-Qualität? Manuel Pichler und Sebastian Nohn nehmen sich in diesem Kapitel genau dieses Themas an. Sie erklären nicht nur, was sich hinter so magischen Begriffen wie Softwaremetrik oder zyklomatischer Komplexität verbirgt, sondern erläutern ganz nebenbei auch noch, wie man einen Server zur kontinuierlichen Überprüfung der erzeugten Codebasis aufsetzt und betreibt. Sie stellen immer wieder die Vorteile der kontinuierlichen Integration, die sich daraus ergebenden Vorteile und die Qualitätsverbesserung der Entwicklung heraus.

Kapitel 16 - Sicherheit

Das Gewährleisten der Sicherheit einer Anwendung und des ausführenden Servers sollte von jeder Person, die sich im IT-Umfeld bewegt, ernst genommen werden. Ausserdem sollte es auf jeder Fort- und Weiterbildungsliste ganz oben stehen. Arne Blankerts beschäftigt sich schon seit längerer Zeit mit diesem Thema, und nicht nur in der Softwareentwicklung. In diesem Kapitel gewährt er einen Einblick in sein Wissen und führt dem Leser abermals vor Augen, wie wichtig und allgegenwärtig dieses Thema ist. In beeindruckender Weise findert er die richtigen Worte, wie Probleme, entstanden durch kleine Unachtsamkeiten, behoben werden können. Ausserdem zeigt er Sicherheitsaspekte auf, die ein Entwickler nicht unbedingt zu seinem Arbeitsfeld zählt (z.B. Verschlüsselung der Serverkommunikation), deren er dafür aber um so mehr gewahr sein sollte. Arne betrachtet ausserdem die durch das Open Web Application Security Project (OWASP) gelisteten häufigsten Fehler im Webumfeld und beschreibt nicht nur deren Bedeutung, sondern erklärt auch deren Auswirkungen und welche Maßnahmen getroffen werden können, diese zu beheben.

Fazit

Nüchtern betrachtet ist dieses Buch eigentlich ein Kompendium über die Art und Weise, wie qualitativ hochwertige Software erzeugt werden kann. Ich lasse hier bewußt den Verweis auf PHP weg, da dieses Buch wesentlich weiter geht. Sicherlich sind die verwendeten Beispiele in PHP geschrieben und die beschriebenen Projekte wurden in PHP umgesetzt, aber die Nachricht dieses Buches ist allgemeiner. Die Auswahl der Co-Autoren ist Sebastian und Stefan hervorragend gelungen. Sie haben es geschafft, dass einige Größen der PHP-Szene einmal von ihren täglichen Herausforderungen und die Art, wie sie diesen begegnen, berichten.

Ich beschließe diese Rezension, wie ich sie begonnen habe: "Ich bin begeistert und lege es jedem Entwickler wärmstens ans Herz dieses Buch zu lesen."

If you like this article, I'd be very pleased if you'd flattr me.

Trackbacks

Comments

Add new comment

Fields with bold names are mandatory.

Blogroll