Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

27 September, 2007

Die sieben Geheimnisse eines erfolgreichen Programmierers

TL;DR:

Duncan Jones schreibt in diesem Artikel über die seiner Meinung nach sieben wichtigsten Eigenschaften eines guten Programmcodes. Jones ist VB-Programmierer und entwickelt Zusatzsoftware für Drucker.

Programmcode für den menschlichen Verzehr

Ein großes Missverständnis ist es, anzunehmen das Programmcode für den Computer gedacht ist. Computer arbeiten mit low-level Binärcode, eine Serie aus schwer verständlichen Einsen und Nullen oder Hexadezimalen Nummern, nicht in den Hochsprachen in denen wir Programmieren. Der Grund, warum solche Sprachen entwickelt wurden, war dem Programmierer zu helfen.

In der Praxis bedeutet das, Sauberkeit und Übersichtlichkeit der Effizienz und Geschwindigkeit vorzuziehen.

Kommentiere oft und gründlich

Der Kommentar als Sprachelement ist das extreme Beispiel für menschliche Unterstützung. Die meisten Compiler entfernen die Kommentare vom ausführbaren Programm. Der Einsatzzweck der Kommentare ist dem Programmierer (und alle späteren Entwickler) zu sagen, was der Programmcode beabsichtigt zu tun. Man sollte Kommentare mit diesem Hintergedanken schreiben. Allerdings sollte man nicht den Programmablauf wiedergeben.

Ein guter Kommentar:

// Deaktiviert Button, um ungültige Eingaben zu vermeiden

Ein schlechter Kommentar:

// Setze cmd = False

Ein gutes Anzeichen, das man gut dokumentiert hat, ist die Frage Kann jemand verstehen, das das Programm tut, wenn er vom Programmcode nur die Kommentare sieht?

Ordne den Programmcode um die Lesbarkeit zu erhöhen

Genauso wichtig wie es für ein Buch ist, den Text in einzelne Kapitel und Absätze zu unterteilen, ist es auch für den Programmcode, um die Lesbarkeit und die Übersichtlichkeit zu erhöhen. Grundsätzlich bedeutet das, dass jeder Codeblock (z.B. eine IF..THEN..ELSE Konstruktion) und jede Schleife (z.B. eine WHILE..END WHILE Konstruktion) so eingerückt werden sollte, das klar zu erkennen ist, wo sie anfängt und endet.

Erwarte das unerwartete und gehe damit um

Bevor man eine Datei öffnet, sollte man sicherstellen das die Datei verfügbar ist. Bevor man den Fokus auf ein Steuerfeld legt, sollte man sicherstellen, das dieses sichtbar (visible) und aktiviert (enable) ist. Ein ständiges Testen des Programms auf eingaben, die das Programm möglicherweise abstützen lässt, hilft frühzeitig Fehler zu erkennen.

Variablennamen richtig benennen

Es gibt eine ganze Anzahl an Strategien um Variablen zu benennen. Der Schlüssel ist, konsistent und so informativ wie möglich zu sein. Wenn man eine Variable nMonth nennt, gibt man dem Programmierer weitere Informationen, was die Variable (in welcher Form/Datentyp) beinhaltet. Ich persönlich bevorzuge die Ungarische Notation, aber egal welche Notation man verwendet, Konsistenz ist der Schlüssel.

Halte die Funktionen und Subroutinen einfach

Eine Funktion oder Subroutine sollte idealerweise nur eine Sache erledigen. Eine der größten Quellen für Missverständnisse sind Subroutinen die viele Dinge erledigen. Diese sollte in separaten Funktionen, für jedes Problem eine, untergebracht werden. Dies hilft auch das Wiederverwenden von schon fertigen Funktionen für kommende Probleme und hilft den Programmcode leichter zu verstehen

Den Gültigkeitsbereich von Funktionen und Variablen richtig einschränken

Funktionen und Variablen die in nur einem Modul verwendet werden, sollten nicht außerhalb dieses Moduls sichtbar sein. Variablen die nur in einer Funktion oder Subroutine benötigt werden, sollten ebenfalls nicht außerhalb dieser Funktion oder Subroutine sichtbar sein. Dies schützt jeden unerlaubten Zugriff auf eine Variable oder Funktion, die ohne diese Abschirmung zu verwunderlichen Fehlern führen könnte.

Es gibt noch viele weitere Tipps und Tricks welche helfen können, ein besserer Programmierer zu werden, der effizienter arbeiten kann und der besseren Programmcode schreibt, aber diese oben aufgelisteten sieben Geheimnisse bilden eine gute Grundlage, je nachdem wie streng man diese befolgt.

Dieser Text wurde im Original von Duncan Jones verfasst und auf merrioncomputing.com veröffentlicht. Die Übersetzung stammt von mir (Aaron Fischer).