 |
(06.09.04 21:05)
Das Schreiben guter Software ist Kunst und Wissenschaft zugleich. Dies ist für viele eine unbequeme Tatsache, der sie nur ungern ins Auge sehen. Dabei hat das Schreiben guter Software viel mit solidem Handwerk gemein, das Wissenschaft und Kunst zu jener vollendeten Schaffenskraft zu verbinden vermag, die Grosses vollbringt. Doch ob Kunst, Wissenschaft oder Handwerk, in jedem Fall verlangt das Schreiben guter Software sehr viel Augenmass und Urteilsvermögen. Erfolgreich Software zu entwickeln heisst auch, stets wachsam zu sein und nach Zeichen für sich anbahnende Probleme Ausschau zu halten. Talentierte Softwareentwickler entwickeln schon früh ein ausgeprägtes Gespür für sich anbahnenden Ärger. Doch Talent alleine reicht nicht. Was die Talentierten von den wirklich Guten trennt, ist der Wille, hinzusehen, Hinweise richtig zu deuten und ihnen gezielt nach zu gehen. Dazu gehört es auch, den Blick in die richtige Richtung zu lenken. Zum Vergleich: Wenn ein Autofahrer auf einer Bergstrasse ein Schild sieht, das vor Steinschlag warnt, dann mag sein erster Impuls sein, nach oben in die lauernde Felswand zu sehen. Ist er klug und erfahren genug, wird er diesem Drang jedoch widerstehen, seinen Blick und seine Aufmerksamkeit auf das Falsche zu lenken. Er wird sich stattdessen noch stärker auf die Fahrbahn konzentrieren und dort nach Steinen Ausschau halten, die ihm zur Gefahr werden könnten. Der geneigte Softwareentwickler wird es dem kundigen Automobilisten im übertragenen Sinne gleich tun wollen, obwohl es ihm meist nicht vergönnt ist, so deutlich durch am Wegesrand aufgestellte Warnschilder auf drohendes Unheil aufmerksam gemacht zu werden.
Das Fehlen offensichtlicher Hinweistafeln, die beispielsweise vor "schwierigem Code" warnen, bringt uns zur Frage, wie wir Probleme in unseren Programmen erkennen können. Nun, "schwieriger Code" ist an sich ist schon ein sehr guter und ziemlich offensichtlicher Hinweis auf Probleme. Wenn jemand von "schwierigem Code" redet, dann ist das in der Regel ein deutliches Anzeichen für schlechten Code. Auch eine Häufung von Fehlern in einem bestimmten Modul oder einer bestimmten Klasse kann als klares Indiz gewertet werden. Und wenn wir jemanden sagen hören, dass eine bestimmte Klasse schwierig oder gar unmöglich zu testen sei, dann ist auch dies ein unmissverständliches Warnzeichen.
Es lohnt sich, sehr aufmerksam darauf zu achten, ob unsere Programme und die zugrunde liegenden Abstraktionen schwierig zu verstehen sind. Jedes noch so kleine Unbehagen ist ein deutlicher Hinweis und sollte nicht ignoriert werden: Lässt sich eine Klasse nicht benennen, fällt es schwer für eine Variable einen gute Bezeichnung zu finden, ist der Code stark erklärungsbedürftig und schwer zu erklären oder schleichen sich immer wieder die gleichen Fehler bei der Verwendung bestimmter Klassen ein? Dann lohnt es sich, der Sache auf den Grund zu gehen und der Versuchung zu widerstehen, diese "Kleinigkeiten" nicht zu beachten.
Wenn wir vor unserem Code sitzen und rätseln anstatt ihn zu lesen, wenn der Code zu schwierig ist, um gelesen und verstanden zu werden, dann ist er fehlerhaft und gehört ersetzt. Und wenn wir schon dabei sind: Wir sollten unsere Programme so schreiben, dass es schwierig ist, Probleme zu ignorieren. Die konsequente Prüfung der Gültigkeit von Übergabewerten in einer Methode und das Werfen entsprechender Fehler erschweren beispielsweise Schlampigkeit bei der Wertübergabe. Ach ja, auch unser Compiler ist ein ausgezeichneter Hinweislieferant. Vorausgesetzt wir haben Warnungen aktiviert und vorausgesetzt, wir beachten sie auch, wenn sie auftreten. Aber das tun sicher alle von uns, denn schliesslich ist es sinnlos, sich Gedanken über feine Hinweise auf Probleme in unseren Programmen zu machen, wenn wir gleichzeitig die offensichtlichen Warnschilder mit dem grossen fetten Wort WARNUNG übersehen.
Das Schreiben einer Software ist eine intellektuelle Herausforderung. Dazu gehört auch die fortwährende Wachsamkeit und die intellektuelle Spannkraft, um auch den kleinsten Hinweisen für Probleme nach zu gehen. Schliesslich sind wir als Softwareentwickler Problemlöser ersten Ranges. Unsere Sorgfalt und das von uns aufgebrachte Mass an Aufmerksamkeit für intellektuelle Probleme haben dabei einen entscheidenden Einfluss auf die Qualität unserer Arbeit.
-nemo :-)
Über diesen Artikel diskutieren.
|
 |