1. Einführung

Dies ist ein Leitfaden für Leute, die Tcl Quelltext für die Wish oder andere Tcl Anwendungen schreiben. Er beschreibt eine Reihe von Konventionen zum Schreiben von Quelltext und den zugehörigen Testskripten. Es gibt drei Gründe für diese Konventionen. Erstens, die Konventionen gewährleisten, daß bestimmte wichtige Dinge gemacht werden; z.B. jede Prozedur muß eine Dokumentation haben, welche alle Argumente und den Rückgabewert beschreibt und es bedarf Testskripte, welche jede Quelltextzeile überprüfen. Zweitens, die Konventionen garantieren, daß der gesamte Tcl und Tk Quelltext ein einheitliches Aussehen haben. Das macht es uns einfacher, den Quelltext anderer Entwickler zu benutzen, zu lesen und zu warten. Drittens, die Konventionen helfen, gängige Fehler zu vermeiden, indem fehleranfällige Konstrukte, wie z.B. das Erstellen von Listen per Hand anstatt durch Listen erzeugende Prozeduren, für nicht zulässig erklärt werden.

Dieses Dokument basiert auf dem "Tcl/Tk Engineering Manual" von John Ousterhout, welches den Stil für den für die Implementierung von Tcl/Tk und anderer Erweiterungen verwendeten Quelltext spezifiziert. Das Handbuch ist sehr wertvoll für die Entwicklung von Tcl/Tk und ein wichtiger Grund, warum Tcl so relativ einfach zu warten ist.

Jede Entscheidung einen standardisierten Programmierstil enthält Kompromisse, die üblicherweise subjektiv sind. Diese Richtlinien entstanden in einem iterativen Prozeß unter Einbeziehung der Tcl/Tk Gruppe in den Sun Laboratories. Ich behaupte nicht, daß diese Konventionen die bestmöglichen sind, aber die genaue Einhaltung der Konventionen sind nicht das Entscheidende. Wichtiger ist, daß wir alle die gleichen Dinge in derselben Art und Weise tun.

Bitte schreibt Euren Quelltext so, daß er von Anfang an den Konventionen entspricht. Schreibt beispielsweise keinen kommentarlosen Quelltext in der Annahme, daß Ihr zu einem späteren Zeitpunkt, wenn das Programm läuft, die Kommentare nachtragen werdet. Dies wird einfach nicht geschehen. Egal wie gut Eure Absichten auch sein mögen, wenn die Zeit zum Nachtragen von Kommentaren gekommen ist, werdet Ihr feststellen, daß es ein Dutzend wichtigere Dinge zu tun gibt; je größer der unkommentierte Teil des Quelltextes wird, desto schwieriger wird es, die nötige Energie aufzubringen, um alle unkommentierten Teile nachzupflegen. Eine der grundlegenden Regeln von Software ist, daß die Struktur mit der Zeit immer unübersichtlicher wird; wenn man es von Anfang an nicht richtig aufbaut, wird es später niemals sauber strukturiert sein.

Der Rest dieses Dokumentes besteht aus sieben Hauptteilen. Wir beginnen mit dem zweiten Teil, welcher sich mit der Gesamtstruktur von packages und namespaces befaßt. Teil 3 beschreibt die Struktur einer Tcl Quelltextdatei und wie man Prozedurkopfzeilen schreibt. Teil 4 beschreibt die Tcl Namenskonventionen. Im fünften Teil werden die grundlegenden Programmierrichtlinien vorgestellt, wie z.B. eingerückt werden soll und wo man geschweifte Klammern setzt. Teil 6 enthält eine Sammlung von Regeln und Vorschlägen zum Setzen von Kommentaren. Teil 7 beschreibt, wie man Testumgebungen schreibt und unterhält. Der achte Teil enthält einige weitere Themen, wie z.B. das Führen eines Änderungsprotokolls.

Packages und Namespaces