| Jede ernstzunehmende Programmiersprache bietet eine Möglichkeit zum Anbringen von Kommentaren. Hier finden sie eine kurze Übersicht. | Oft vernachlässigt, jedoch ebenso wichtig: Kommentare in Konfigurations-Dateien. |
Entwicklung
|
Ausgewählte Kapitel zur Programmierung |
| Kommentare | Anmerkungen und Tipps |
| Versionen | Ganze Zeilen, Teil-Zeilen, Blöcke |
| Programmiersprachen | C++, CSS, Fortran, HTML, Java, Javascript, Pascal, Perl, PHP, Postscript, Python, Shell, SQL, TeΧ, VBA, Win-Konsole, XML, ... |
| Konfiguration | Kommentare in Konfigurations-(Text)-Dateien |
Kommentare |
|
Wozu Kommentare ?Kommentare sind Anmerkungen in einem Klartext, z.B. im Quelltext von Programmen oder in Konfigurations-Dateien.Die streng wissenschaftliche Bezeichnung für einen Kommentar lautet 'Annotation' ● Gute Produkte sind ausführlich und sorgfältig dokumentiert. ● Ein guter Kommentar erklärt die nicht offensichtlichen Details von Programmen - für andere Menschen, aber auch für die/den EntwicklerIn selbst. ● Der Quelltext größerer Programme ist ohne Kommentare praktisch wertlos. |
● Gute Doku ist einigermaßen verständlich. Leider überwiegen in der Praxis die Negativ-Beispiele: Man versteht die spärliche Doku nur dann, wenn man sich mit dem Programm selbst bereits auskennt. ● Ein oft vernachlässigtes Gebiet ist die Doku von ↓ Konfigurations-Dateien: Bei Stress (d.h. meistens) wird oft darauf verzichtet. Wenn ein Programm oder Server dann Probleme macht, gibt es oft kein Zurück mehr: Das gesamte Programm muss abgeschaltet, de-installiert, neu installiert und von Anfang an nochmals konfiguriert werden... |
Ergänzen statt ÜberschreibenMan muss 'Das Rad nicht ständig neu erfinden': Jede/r EntwicklerIn verwendet Code-Teile aus anderen Programmen, Büchern oder aus dem Internet. |
Allerdings muss man den Original-Code meist für den eigenen Bedarf modifizieren. ♣ In diesem Fall ist es klug, den Original-Text nicht zu löschen oder zu überschreiben, sonden mit Kommentar abzuschalten. Das ist umso wichtiger, je weniger man das Original durchschaut... |
Zeichen-Code● Professioneller Kommentar-Text enthält ausschließlich → ASCII-Zeichen, am besten nur Buchstaben, Ziffern und Leerzeichen.● Da Kommentar-Text bei der Verarbeitung ignoriert wird, ist man versucht, darin auch Sonderzeichen zu verwenden (z.B. deutsche Umlaute ÄÖÜäöüß ). Davon wird dringend abgeraten - Vermeiden sie in Kommentaren auch die Zeichen !#$%*<>? die in manchen Programmen besondere Bedeutung haben. ● Bei Verwendung von Zeichen mit Code>127 besteht Gefahr, dass irgendein Programm diese Zeichen falsch interpretiert - besonders bei Weitergabe des Quelltextes an andere Betriebssysteme, Gebiete anderer Sprachen, - d.h. immer bei Upload ins Internet. |
Auch → Unicode-Zeichen im Quelltext sind ein unkalkulierbares Risiko, selbst bei Deklaration als → UTF-Code: Alle über ASCII hinausgehenden Zeichen werden am besten maskiert. ♣ Tipp: Wenn man in Kommentaren keine Sonderzeichen verwendet, dann kann man den Quelltext eigener Programme und Webseiten automatisch auf Zeichen mit ASCII-Code>127 durchsuchen lassen: Alle derartigen Fehler werden gefunden und können leicht beseitigt werden. |
Sprache• Es ist international üblich, für Kommentare einfaches Englisch zu verwenden.• In Lokal-Sprache werden nur Programme ohne Bedeutung kommentiert. Eine Ausnahme sind Programme zu Lehr-Zwecken. • Kauderwelsch wie z.B. Hacker-Slang ist nur für den Verfasser lustig. |
Englisch-Kenntnisse sind für EntwicklerInnen unentbehrlich. Wichtige Originale werden fast auschließlich in Englisch verfasst, lokale Sprach-Versionen leider oft von ÜbersetzerInnen hergestellt, die keine Ahnung von der Materie haben... |
Mehrfach-InterpreterDie Erstellung von Programmen wird immer mehr automatisiert.Das bedeutet: Programme schreiben andere Programme. In diesem Fall muss man im Quelltext auf die Syntax und insbesondere auf die Kommentar-Regeln aller Komponenten und auf die Reihenfolge der Anwendung Rücksicht nehmen. |
Bekannte Beispiele sind die Herstellung von HTML- oder Javascript-Code (dynamische Webseiten) mit Java, Perl, PHP, Python... Die Erkennungs-Zeichen für 'fremde' Interpreter wie z.B. <?php ?>
innerhalb von HTML-Code haben einige Ähnlichkeit mit Kommentaren.
|
Anweisungen fremder ProgrammeAlle zur Automatisierung der Software-Herstellung dienenden Programme müssen ihre Anweisungen in den Quelltext anderer Programmiersprachen einbetten - normalerweise in Kommentare.Besondere Zeichen-Kombinationen innerhalb der Kommentare dienen als Erkennungs-Zeichen für derartige Anweisungen von Frend-Programmen. |
Das meist verwendete Beispiel sind Web-Editor Programme, die ihre Anweisungen in HTML-Kommentare einbetten, z.B.
<!-- InstanceBeginEditable name="title" -->
In diesem Fall muss man bei m Anlegen eigener Kommentare darauf achten,
nicht irrtümlich Anweisungen des Web-Editors auszulösen.
<!-- InstanceEndEditable --> |
Programmiersprachen und Verwandte |
|
C++Die Zeichen // beginnen einen Kommentar, der bis zum Zeilen-Ende reicht.
// Das ist ein C++-Kommentar
Die Zeichen /* beginnen einen Kommentar-Block,
der auch mehrzeilig sein kann.a=123; // halbzeiliger Kommentar Die Zeichen */ beenden den Kommentar-Block. /* Das ist ein C++-Kommentar */
|
Ein häufiger Sonderfall ist der Preprozessor: Seine Anweisungen sind im Quelltext enthalten und beginnen mit dem # Zeichen, z.B.
#define array_size 100
Diese Anweisungen steuern den Preprozessor-Programm, werden von diesem entfernt
und gelangen nicht bis eigentlichen C++-Compiler.
#ifdef array_size int array_a[array_size];
#endif
|
CSS (Cascading StyleSheets)Die Zeichen /* beginnen einen Kommentar-Block, der auch mehrzeilig sein kann.Die Zeichen */ beenden den Kommentar-Block. /* Das ist ein CSS-Kommentar */
|
Ein häufig auftretender Spezialfall ist die Einbettung eines CSS-<style>-Elements in HTML- oder XML-Code:
<style type="text/css" media="screen">
XML ↓ verlangt die Begrenzung fremder
Code-Elemente durch <![CDATA[ ... ]]> /* <![CDATA[ */ body{color:#00F;}
/* ]]> */</style> Damit CSS diese Zeichen ignoriert, werden sie in CSS-Kommentare verpackt. |
FortranDie Zeichen C oder * am Zeilen-Anfang (1. Spalte) bezeichnen eine Kommentar-Zeile.C Das ist ein Fortran-Kommentar
|
Fortran wurde früher in Technik und Naturwissenschaften viel verwendet. Noch heute gibt es erstklassige Funktions-Bibliotheken in Fortran, die man teilweise in andere Programmiersprachen (z.B. Perl) integrieren kann. |
HTMLDie Zeichen <!-- beginnen einen Kommentar-Block, der auch mehrzeilig sein kann.Die Zeichen --> beenden den Kommentar-Block. <!-- Das ist ein HTML-Kommentar -->
|
HTML-(Web)-Editoren und andere Automatisierungs-Programme verwenden HTML-Kommentare für eigene Anweisungen, z.B.
<!-- InstanceBeginEditable name="title" -->
<!-- InstanceEndEditable --> |
Java und JavascriptDie Zeichen // beginnen einen Kommentar, der bis zum Zeilen-Ende reicht.
// Das ist ein Java(script)-Kommentar
Die Zeichen /* beginnen einen Kommentar-Block,
der auch mehrzeilig sein kann.var a=123; // halbzeiliger Kommentar Die Zeichen */ beenden den Kommentar-Block. /* Das ist ein Java(script)-Kommentar */
|
Ein häufig auftretender Spezialfall ist die Einbettung eines <script>-Elements in HTML- oder XML-Code:
<script type="text/javascript">
XML ↓
verlangt die Begrenzung fremder Code-Elemente durch
// <![CDATA[ alert("Javascript");
// ]]></script> <![CDATA[ ... ]]>
Damit Javascript diese Zeichen ignoriert, werden sie in JS-Kommentare verpackt.
|
PascalJe nach Compiler- oder Interpreter (TurboPascal)-Variante scherint es mehrere Möglichkeiten für Kommentare zu geben. Pascal hat derzeit kaum mehr Bedeutung und wurde von modernen Programmiersprachen abgelöst.Die Zeichen // beginnen einen Kommentar, der bis zum Zeilen-Ende reicht: // Das ist ein Pascal-Kommentar
|
Die Zeichen (* oder { beginnen einen Kommentar-Block, der auch mehrzeilig sein kann. Die Zeichen *) oder } beenden den Kommentar-Block.
(* Das ist ein Pascal-Kommentar *)
{ Das ist ein Pascal-Kommentar } |
PerlDas Zeichen # beginnt einen Kommentar, der bis zum Zeilen-Ende reicht. |
# Das ist ein Perl-Kommentar
$a=123; # halbzeiliger Kommentar |
PHPDie Zeichen // beginnen einen Kommentar, der bis zum Zeilen-Ende reicht.
// Das ist ein PHP-Kommentar
$a=123; // halbzeiliger Kommentar Die Zeichen /* beginnen einen Kommentar-Block, der auch mehrzeilig sein kann. Die Zeichen */ beenden den Kommentar-Block. /* Das ist ein PHP-Kommentar */
|
PHP-Code wird oft in Webseiten eingebettet, z.B. <?php print "Hier ist PHP"; ?>
Als Zeichen zum Start des PHP-Interpreters werden je nach Konfiguration auch die
Zeichen <? anerkannt. Das kann Kollisionen ergeben,
z.B. mit der →
XML-Deklaration (in jeder mit PHP hergestellten
→
XHTML-Webseite):
<?xml version="1.0" encoding="utf-8" ?>
In diesem Fall muss man die XML-Deklaration aus dem XHTML-Code entfernen -
am besten indem man sie in den PHP-Code integriert, z.B. so
<?php
$x='<?xml version="1.0" encoding="utf-8"?>'; print "$x\n"; ?> |
Postscriptbezeichnet einen Standard für Satz-Programme (Layout)Das Zeichen % beginnt einen Kommentar, der bis zum Zeilen-Ende reicht. % Das ist ein Postscript-Kommentar
|
Ganz ähnlich wird allerdings die erste Zeile jedes Postscript-Programms formuliert: %!PS-Adobe-1.0
sowie Postscript Struktur-Informationen, z.B.
%%Title: Titel
|
PythonDas Zeichen # beginnt einen Kommentar, der bis zum Zeilen-Ende reicht. |
# Das ist ein Python-Kommentar
a=123 # halbzeiliger Kommentar |
Shell-Konsole (Linux, Cygwin)Das Zeichen # beginnt einen Kommentar, der bis zum Zeilen-Ende reicht. |
# Das ist ein Shell-Kommentar
a=123 # halbzeiliger Kommentar |
SQLDie Zeichen /* beginnen einen Kommentar-Block, der auch mehrzeilig sein kann.Die Zeichen */ beenden den Kommentar-Block. /* Das ist ein SQL-Kommentar */
|
In direkt (manuell oder mit Programmen) erteilten SQL-Befehlen werden natürlich keine Kommentare verwendet. Allerdings kann man Sequenzen von SQL-Anweisungen in Text-Dateien (meist *.sql) zusammenstellen und zur gemeinsamen 'Batch'-Verarbeitung verwenden. In diesem Fall sind Kommentare hilfreich. |
TeΧ und LaTeΧ(Das Χ ist ein griechisches Chi, man spricht 'Tech') bezeichnet ein Satz-Programm (Layout), welches vorwiegend im mathematischen, technischen und naturwissenschaftlichen Bereich verwendet wird. |
Das Zeichen % beginnt einen Kommentar, der bis zum Zeilen-Ende reicht. % Das ist ein TeΧ-Kommentar
|
VBAKommentar-Zeilen (und Teil-Zeilen) beginnen mit einem ' (single quote) Zeichen. |
' das ist ein VBA-Kommentar
|
Windows-Konsole (cmd.exe)Die Zeichen rem oder :: beginnen einen Kommentar, der bis zum Zeilen-Ende reicht. Windows Konsolen-Befehle unterscheiden normalerweise nicht zwischen Groß- und Kleinbuchstaben |
REM Das ist ein Kommentar
Rem Das ist ein Kommentar rem Das ist ein Kommentar :: Das ist ein Kommentar |
XMLXML umfasst die gesamte Familie moderner "Auszeichnungs-Programme", z.B. MathML, → SVG, → XHTML (diese Webseite), → XSL, ...Zu dieser Familie gehören auch Daten wie z.B. OpenDocument (OpenOffice) oder OpenXML (M$Word docx), deren Dateien zusätzlich ZIP-komprimiert sind. |
Die Zeichen <!-- beginnen einen Kommentar-Block, der auch mehrzeilig sein kann. Die Zeichen --> beenden den Kommentar-Block. <!-- Das ist ein XML-Kommentar -->
|
|
Ein häufig auftretender Spezialfall ist die Einbettung fremder Code-Elemente
(z.B. ↑ CSS ,
↑ Javascript)
in XML-Code: ● Die Zeichen <![CDATA[ bezeichnen den Beginn von Fremd-Code, die Zeichen ]]> dessen Ende. Diese XML-Zeichen müssen vor dem fremden Interpreter geschützt werden, deshalb werden sie zusätzlich in einen Kommentar der jeweiligen Programmiersprache verpackt. |
Ein anderer häufiger Fall ist die Herstellung eines XML-Dokuments
(z.B. einer XHTML-Webseite) mit
↑ PHP:
In diesem Fall muss man verhindern, dass die XML-Deklaration
<?xml version="1.0" encoding="utf-8" ?>
irrtümlich den PHP-Interpreter auslöst. Das wird erreicht, wenn man die
Deklaration aus dem XML-Quelltext entfernt und in den PHP-Quelltext verlagert:
<?php
$x='<?xml version="1.0" encoding="utf-8"?>'; print "$x\n"; ?> |
Konfigurations-Dateien |
|
Auf Linux erfolgt die Konfiguration in den meisten Fällen über Text-Dateien.
Das trifft auf das Betriebssystem ebenso zu wie auf fast alle Server-Programme,
die meisten Bibliotheken, usw.Das bietet viele Vorteile, z.B. • Die (menschliche) Kontrolle ist wesentlich einfacher - man braucht dazu keine speziellen Programme, jeder Text-Editor genügt. • Die Automation ist einfach und transparent: Man kann Text-Konfigurations-Dateien mit Programmen lesen, ändern oder erstellen. Diese Technik ist zwar einfach anwendbar, aber trotzdem sicher: Das Linux Betriebssystem verwaltet einen besonders strengen Zugriffs-Schutz. ● Eine wichtige Konsequenz: Linux Konfigurations-Dateien können und sollten unbedingt kommentiert werden. |
Microsoft verfolgt in den meisten Fällen die gegenteilige Strategie:Konfiguration-Daten werden so gut wie möglich versteckt, nach Möglichkeit jedem Zugriff entzogen und binär verschlüsselt. Auf Vista sind viele wichtige Details selbst für den Administrator nicht oder nur mit aufwändigen Tricks zugänglich - Eine Art von Selbst-Entmündigung, vor der auch ein legaler Kauf der Lizenz nicht schützt. Die Registry-Datenbank ist das klassische Ungetüm aller Windows-Systeme: Binär codiert, im System versteckt, nur mit besonderen Programmen (z.B. regedit.exe) zugänglich, ... In diesem Fall erübrigt sich ein Kommentar. ● Auch auf Windows-Systemen gibt es einige Ausnahmen: Programme, die aus der Linux-Welt portiert wurden, sind meist ebenso wie auf ihrer Heimat mit Text-Dateien transparent zu konfigurieren, z.B. der Apache Webserver oder die Programmiersprache PHP. |
|
In Gebrauch sind wenige Varianten, die meist miteinander kompatibel sind: Die Zeichen # oder ; beginnen einen Kommentar, der bis zum Zeilen-Ende reicht. Am besten hält man sich an die Syntax der fast immer vorhandenen Original-Dokumentation. Halbzeilige Kommentare sind zwar oft zulässig, sollten jedoch vermieden werden. ♣ Tipp: Beachten sie auch hier die Regel, in Kommentaren nur ASCII-Zeichen zu verwenden, keinesfalls Sonderzeichen (Umlaute). |
♣
Tipp: Überschreiben sie niemals den Original-Text: Schalten sie ihn mit
einem Kommentar-Zeichen ab und schreiben sie den geänderten Text darunter. ♣ Tipp: Bezeichnen sie jede Änderung mit ihrem Namen oder eindeutigen Zeichen. So finden sie die Änderungen auch in sehr langen Konfigurations-Dateien. Beispiel (z.B. Apache Webserver) Original-Text: DocumentRoot "/srv/www/htdocs"
Nach Änderung:
# Original:
# DocumentRoot "/srv/www/htdocs" # Aenderung durch Mayer: DocumentRoot "/home/apache/htdocs" # Ende der Aenderung |
|
Auf Linux ist es üblich, Konfigurations-Dateien durch Script-Programme
automatisch zu erstellen. Lesen sie die Dokumentation - insbesondere diejenige innerhalb der zu ändernden Datei - vor einer Änderung: Es kann passieren, dass die Datei bei System-Start, spätestens jedoch beim nächsten System- oder Software-Update durch ein Script-Programm überschrieben wird. |
Zum Schutz individueller Konfigurations-Anweisungen wurde die Konfiguration
von Programmen in allen neueren Linux Distributionen in System-Teile und
User-Teile getrennt. Die User-Teile werden nach den
System-Teilen geladen und überschreiben bzw. ergänzen diese allenfalls. Das erscheint anfangs kompliziert, bietet jedoch ausgezeichneten Komfort für die Administration: Die User-Teile der Konfiguration bleiben von den Script-Programmen unangetastet. |
|