Wo sollen / müssen / dürfen Kommentare stehen, wann verwendet man welche Form von Kommentaren? Sind Kommentare dazu da, dem nicht SAS-Kundigen das Programm zu erklären? Welche zusätzlichen Informationen sollen Kommentare enthalten? Wie sieht ein sauberer Kommentar-Programmkopf aus?
Anleitung, wie jedes Redscope-Mitglied die Programmierrichtlinien bearbeiten kann.
Programme müssen eine Geschichte erzählen
(ist eine vor Jahren mal gelesenene Weisheit)
Das meint:
Die Kommentare in einem Programm enthalten "die Prosa", damit alles zusammen (Code mit den jeweiligen Kommentaren) die "Geschichte" ergibt.
Denn die Programme müssen die Geschichte freiwillig erzählen, man soll ihnen den Sinn nicht mühsam abringen müssen (wie beim z.B. Marx'chen Kapital o.ä. Werken).
Für mich ist eine Methode: Was brauche ich für Infos, damit ich auch nach drei Monaten Urlaub das Programm/den Code-Abschnitt immer noch verstehe.
Man muss ein Prgramm nicht leicht und flüssig lesen könne wie z.B. gewisse Boulevard-Blätter. Aber den Sinn müssen sie "freiwillig" offenbaren!
Wir drucken z.B. unseren Programm-Code (wenn überhaupt) mit Schriftgröße 6 Punkt (Schriftart Courier New). Das kann man nicht leicht lesen, aber man soll es leicht verstehen können.
Ein Beispiel:
/* Sinn */ /* Unsinn */ lohn=lohn*1.05; /* 5% Tarif Erh. */ a=a*1.05; /* a mal 1,05 */
Kommentare immer mit /* Kommentar-Text */.
Die Version mit * Kommentar-Text; ist zu fehleranfällig.
An sich stimme ich dieser Regel zu, und verwende selber beim Programmieren fast nie die *;-Kommentare, da man (wie angesprochen) den Strichpunkt am Ende des Kommentars doch recht schnell vergisst (vor allem wenn man auch andere Programmiersprachen gewöhnt ist...)
Allerdings sollte man auch einen gravierenden Nachteil dieser Regel nicht außer Acht lassen: Gerade bei der Fehlersuche hat man häufig dass Problem, dass man größere Codeabschnitte auskommentieren will. Wenn man aber in einem solchen Abschnitt Blockkommentare der Form /* ... Kommentar... */ verwendet, ist das nicht mehr möglich.
Gibt es Vorschläge zur Lösung dieses Problems? Als Workaround kann man natürlich das Pseudo-Auskommentieren mittels %MACRO / %MEND verwenden, aber das ist jetzt nicht unbedingt guter Programmierstil :-) Ideal wäre natürlich, wenn SAS irgendwann einmal auch Zeilenkommentare im C++/Java-Style zulassen würde (mit // am Anfang).