PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Softwarequalität in PHP Projekten

with 10 comments

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?

Written by Michael Kliewe

Januar 29th, 2011 at 6:11 pm

Posted in PHP

Tagged with , , , ,

10 Responses to 'Softwarequalität in PHP Projekten'

Subscribe to comments with RSS or TrackBack to 'Softwarequalität in PHP Projekten'.

  1. Hallo Michael,

    danke für die Rezension. Schade, dass es mit dem Belegexemplar nicht geklappt hat. Wir hatten Deine Adresse jedenfalls an den Verlag weitergegeben.

    Gruß,
    Sebastian

    Sebastian Bergmann

    29 Jan 11 at 18:30

  2. Ich habe das Buch jetzt auch durchgelesen und muss dir beipflichten: für die PHP-Szene ein sehr wichtiges Buch. Jeder Entwickler, der sich verbessern will, sollte es lesen.

    Es schneidet sehr viele Themen an, was gut ist. Allerdings in etwas loser Reihenfolge und Struktur.
    Nicht unbedingt ein Nachteil, sondern eher Anregung zur Weiterbildung und Vertiefung.

    Einen entwas gröberen „Fehler“ habe ich dann doch gefunden:
    In Kapitel 3.4.4 und 3.4.5 (Testen von abstrakten Klassen und geschützten Methoden).
    Solche Dinge testet man nicht direkt, sondern rein über ihre Benutzung bzw. Verwendung. Ruft keine Methode eine private auf, so kann man die private auch löschen.
    Und gibt es keine Nachfahren einer abstrakten Klasse, so würde die auch keinen Sinnn machen. Von daher muss man keine Proxy-Klasse dafür erstellen, sondern einfach ein Kind machen…

    Ansonsten ein prima Werk!

    Nino Martincevic

    30 Jan 11 at 00:04

  3. Ich verstehe es einfach nicht! Alle schreiben nur Gutes über das Buch.
    Dabei fordert zu viel von einem Einsteiger und bietet nichts interessantes für professionell PHP-entwickler.

    Die Beispiele sind nicht ausreichen erklärt um sie ohne Weiteres auszuprobieren und es gibt keine ergänzenden Code-Snippets, die man sich zum Testen und Rumspielen herunterladen könnte.

    Das Buch liefert nur eine textuelle Einführung und Beschreibt, wie es in der Theorie richtig gemacht werden sollte und zeigt dabei halbfertige Code-Beispiele nach dem Motto: „So ungefähr könnte es aussehen.“

    Und sowas von _den_ PHP-Experten? Ich war maßlos enttäuscht von dem Buch. Ich habe mir da etwas wesentlich substanzielleres erhofft!

    Versucht beispielsweise mal, ausschließlich mit dem Buch eine CI-Umgebung aufzusetzen.

    Ich wüsste zu gerne, für welche Zielgruppe das Buch genau verfasst ist.

    Achja, und auf Kritik via E-Mail wird gar nicht erst reagiert. 🙁

    Wie Nino schon schrieb: „Es schneidet sehr viele Themen an“. Nirgends wird es mal konkret oder wirklich in die Tiefe gegangen. Und dafür 49 €…

    Christian K.

    31 Jan 11 at 12:48

  4. zu welchen themen hat Jens Grochtdreis geschrieben?

    aaaaaa

    31 Jan 11 at 13:03

  5. @Christian K.
    Versuch mal bitte ein Buch zu schreiben, in dem du Ratschläge und Hinweise auf weiterführende und komplexe Themen gibst und dann noch Code zu integrieren, der aus einer komplexen Anwendungen (die ja alle im Buch sind) sinnvolle Anwendungsfälle aufzeigt.
    Nach ca. 1500 Seiten dürftest du spätestens aufgeben.

    Ich verstehe nicht, warum so viele, angeblich erfahrene, Entwickler damit Probleme haben, dass kein Code gezeigt wird oder man tiefer in die Materie steigt.
    Sind nicht die Konzepte, Methodiken, Hinweise wichtiger? Ausprobieren muss man es sowieso.
    Und ganuso wie bei OOP Abstraktion extrem wichtig ist, sollte es auch in den Köpfen von Entwicklern sein.

    Nino Martincevic

    31 Jan 11 at 15:47

  6. @Christian: Das Buch ist würde ich sagen für PHP-Programmierer, die die Sprache an sich gut beherrschen, aber sich noch nicht sehr tief mit Codequalität beschäftigt haben bzw. gerade damit anfangen. Es ist also für diejenigen gedacht, die aus dem privaten Hobby-Sektor kommen und in den Beruf bzw. den professionellen Bereich einsteigen wollen, sprich große teure Projekte über Jahre betreuen, wo die Qualität dann wichtig ist (weil Kunden dafür bezahlen oder weil die Supportkosten nicht ausufern dürfen).

    Für mich persönlich war vor allem der Einblick in einige große Projekte interessant, was für Probleme dort aufgetreten sind und wie man sie löste. Aber auch da war natürlich nicht alles neu, wenn man täglich mit dem Zend Framework arbeitet hat man natürlich einige der Probleme schon selbst erfahren und auf den Mailinglisten darüber gelesen, wie man sie lösen möchte. Auch die Grundlagen waren nichts super neues, aber das ein oder andere Tool kannte ich noch nicht. Und Einblicke in die QA-Abteilungen von Digg oder VZnet bekommt man sonst nirgends.

    Ich glaube auch, dass man einem Entwickler, der bereits >5 Jahre mit PHP arbeitet keine 480 Seiten „Neues“ präsentieren kann. Wenn man sich da weiterbilden möchte helfen nur sehr spezialisierte Trainings, Blogartikel etc. Über jedes dieser speziellen Themen kann man aber keine Bücher schreiben, die dann nur 500 Leute lesen.

    Auch das Beispiel CI-Umgebung: Man kann nicht erwarten (und ich würde es auch nicht wollen) dass dort 80 Seiten über die Installation von phpundercontrol geschrieben wird, und ich dann doch Hudson einsetze in der Firma, welches gar nicht behandelt wird. Wenn ich etwas spezielles über Hudson wissen möchte kaufe ich mir ein Hudson Buch oder lese die Doku/Manuals.
    Das Buch behandelt Software-Qualität, und nicht speziell 2 oder 3 Themen in größtmöglicher Detailtiefe.

    @aaaaaa: Ich glaube über die nichtfunktionalen Aspekte, einer der letzten Kapitel. Ich schaue nochmal nach wenn ich zuhause bin.

    Michael Kliewe

    31 Jan 11 at 20:39

  7. @Michael

    Sehr gut zusammengefasst.

    Aber zu dem Punkt „Ich glaube auch, dass man einem Entwickler, der bereits >5 Jahre mit PHP arbeitet keine 480 Seiten „Neues“ präsentieren kann“ muss ich doch widersprechen.
    Nach über 15 Jahren PHP ist es teilweise erschreckend, wie viele auf den OOP-Zug aufgesprungen sind (was ja toll ist) aber immer noch nur an Basics rumkratzen und selbst die wichtigsten Prinzipien mißachten.

    So lange Autoren Singletons (das Design Antipattern), getter/setter-Mania statt Kapselung und Information Hiding, magische (voodoo) Funktionen statt explizite Interfaces als Grundlagen von OOP verkaufen und MVC als Architektur verkaufen bei denen die Models auch nur reine Datenklumpen sind, gibt es noch viele Bücher, die man schreiben kann und sollte…

    Nino Martincevic

    31 Jan 11 at 21:18

  8. Wie Michael finde ich insbesondere die Kapitel aus dem echten Leben sehr spannend. Einblicke und das „Wie machen es die Großen“ sind ein wichtiger Punkt. Das nicht jedes Thema bis ins kleinste Detail ausgeführt wird, ist mE nicht sonderlich schlimm, da mit den Ansatzpunkt einer weiteren Recherche nichts im Wege steht.

    Norbert Bartels

    1 Feb 11 at 20:09

  9. Danke! Sehr gutes Buch.

    dos

    7 Feb 11 at 21:31

  10. […] Entwickler unnötig ein.Michael: Wie ich gelesen habe, gibt es eine zweite Auflage Eures Buches Softwarequalität in PHP-Projekten. Arbeitet Ihr außerdem aktuell noch an anderen Büchern und worauf dürfen wir uns freuen?Stefan: […]

Leave a Reply

You can add images to your comment by clicking here.