Gelesen: Code Quality
In einem IEEE Magazin habe ich eine Anzeige für Diomidis Spinellis’ Buch *Code Quality* gesehen und habe es dann auf Weihnachten geschenkt bekommen. Spinellis ist IEEE-Software Autor und übrigens auch der Entwickler von UMLGraph, welches wir in unserer Studien- und Diplomarbeit für das Generieren der Diagramme verwendet haben.

Er schreibt über die verschiedenen Aspekte von Qualität, die man beim schreiben von Programmcode beachten kann, muss oder auch sollte. Es geht dabei um nicht funktionale Anforderungen wie Verlässlichkeit, Sicherheit, Portabilität, Wartbarkeit und Stabilität (also alle sogenannten “ilities”).
Aussergewöhnlich an seinem Ansatz ist, dass er all diese Probleme anhand von Code erklärt. Und nicht selbstgeschriebenen Dummy-Code sondern Code aus verschiedensten Open Source Projekten. Ich finde das wirklich ziemlich beeindruckend, ich möchte nicht wissen wie viel Zeit er dafür aufwenden musste.
Viele dieser Probleme sind stark von der Hardware oder dem Betriebssystem abhängig, man sollte also gerne C-Code lesen und auch nicht vor Themen wie Memory Management fürchten, sonst kann man dem Buch wahrscheinlich nicht allzu viel abgewinnen. Insofern sind gewisse Teile des Buches für reine Java-Programmierer eher uninteressant, müssen sie sich doch nicht um verschiedenste Hardware und Compiler kümmern. Aber Themen wie Security (keine eigenen Algorithmen “erfinden“!) und der Umgang mit Daten (Inputvalidierung beispielsweise) sind allgemein gültig. Im zweitletzten, ziemlich grossen Kapitel geht es noch um Maintainability und es werden verschiedenste Punkte die man beim schreiben von Code beachten sollte berücksichtigt.
Interessant war auch die letzte Seite im Buch, wo die verwendeten Tools erklärt werden. Das ganze Buch wurde nämlich mit vim/nvi und Latex geschrieben und mit make und diversen Perl-Scripts erstellt.
Ein recht gutes Buch, auch wenn nicht alle Teile gleich interessant sind, dafür aber immer mit echten Beispielen und keine Äpfeln und Birnen. Also definitiv lesenswert!
Leave a comment
You must be connected to write a comment.

