Inhalt

5. Gute Programmier-Praxis

Das Meiste in diesem Abschnitt betrifft die Sicherstellung der Portabilität, nicht nur zwischen den verschiedenen Linux-Distributionen, sondern auch mit den anderen UNIX-Abkömmlingen. Mit anderen UNIX-Derivaten portabel zu sein, ist nicht nur ein anerkennenswerter Ausdruck von Professionalität und Hacker-Ehrenkodex, sondern auch eine wertvolle Sicherheit gegen zukünftige Änderung in Linux selbst.

Schließlich werden andere Leute versuchen, Ihren Code auf anderen Systemen als auf Linux zu benutzen, so daß Portabilität die Anzahl von störenden, ratlosen E-Mails, die Sie bekommen werden, minimiert.

5.1 Benutzen Sie entweder reines ANSI C oder eine portable Skriptsprache

Der Portabilität und Stabilität zuliebe sollten Sie entweder ANSI C oder eine Skriptsprache benutzen, die Portabilität garantiert, weil sie über genau eine Implementation auf einer anderen Plattform verfügt.

Geeignete Skriptsprachen sind u. a. Python, Perl, Tcl und Emacs Lisp. Simple alte Shells sind nicht geeignet, da es zu viele verschiedene Implementierungen von ihnen gibt mit subtilen Haarspaltereien und die Shell-Umgebungen Ziel von Durcheinanderbringungen durch Benutzer-Gewohnheiten sind (wie etwa `alias').

Java verspricht Portabilität, aber die für Linux verfügbaren Implementationen sind noch problematisch und wenig in Linux integriert. Java ist noch eine riskante Wahl, obwohl es beliebter ist als es seiner Reife entspricht.

5.2 Befolgen Sie für C nützliche Portabilitätspraktiken!

Wenn Sie in C programmieren, nehmen Sie sich die Freiheit, alle ANSI-Möglichkeiten zu nutzen, einschließlich function prototyping, was Ihnen helfen wird, Unvereinbarkeiten zwischen den Modulen zu entdecken. Die alten K&R-Compiler sind Geschichte!

Auf der anderen Seite sollten Sie nicht annehmen, daß GCC-typische Eigenschaften wie die `-pipe'-Option oder verschachtelte Funktionen überall verfügbar sind. Das wird auf Sie zurückfallen und nochmals zwicken, wenn irgendjemand Ihren Code auf ein nicht - Linux-, nicht GCC - System portiert.

5.3 Benutzen Sie autoconf/automake/autoheader

Wenn Sie in C programmieren, sollten Sie autoconf/automake/autoheader benutzen, um mit den Anforderungen zur Portabilität umzugehen, die Systemkonfiguration zu erkunden und um Ihre Makefiles zu generieren. Die Leute, die aus dem Quellcode installieren, erwarten heutzutage, daß sie "configure; make" eingeben und ein sauberes Produkt bekommen

5.4 Überprüfen Sie Ihren Code vor der Veröffentlichung

Wenn Sie in C programmieren, compilieren Sie testweise mit -Wall und beseitigen Sie die Fehler mindestens einmal vor jeder Veröffentlichung. Das bringt eine erstaunliche Anzahl von Fehlern zutage! Um wirklich gründlich zu sein, kompilieren Sie auch mit -pedantic.

Wenn Sie Perl verwenden, überprüfen Sie Ihren Code mit perl -c (und, falls anwendbar, mit -T). Benutzen Sie perl -w und `use strict' gewissenhaft. (Schauen Sie zwecks Diskussion in die Perl-Dokumentation.)

5.5 Überprüfen Sie die Dokumentation und die READMEs vor der Veröffentlichung

Wenden Sie eine Rechtschreibprüfung auf das Dokument an. Wenn Sie den Eindruck erzeugen, daß Ihre Rechtschreibung fehlerhaft ist und Sie sich darum nicht bemühen, werden die Leute glauben, daß auch Ihr Code schlampig und nachlässig ist.


Inhalt