Kommentar (Programmierung)
Kommentare dienen beim Programmieren dazu, den Zweck von Programmteilen zu beschreiben und schwer lesbaren Code verständlicher zu machen.
Kommentare schreibt man nicht für den Computer, damit der das Programm verarbeiten kann.
Kommentare schreibt man für sich selbst und alle anderen Menschen, die diesen Code jemals lesen und verstehen werden müssen.
Syntax
Sprache | Syntax |
---|---|
HTML | <!-- Kommentar,
darf beliebig
lang sein -->
|
Python | # Kommentar, einzeilig
# Längere Kommentare
# müssen in jeder Zeile
# mit # beginnen
|
Java JavaScript |
//Einzeiliger Kommentar
|
/* Mehrzeiliger
Kommentar */
| |
CSS |
Sinnvoller Einsatz
Grundsätzlich gilt: Ein gut geschriebenes Programm braucht keine Kommentare, weil allein aus den Namen von Variablen, Funktionen und Klassen genau hervorgeht, was das Programm tut.
Diese Funktion braucht beim besten Willen keinem Kommentar:
def addiere(summand1, summand2):
return summand1 + summand
Ihre Aufgabe ist so banal wie offensichtlich.
Mitunter gibt es Dinge, die sich nicht so selbsterklärend aufschreiben lassen.
In diesem Fall gelten einige Faustregeln:
- Funktionen
- erkläre, was eine Funktion tut, nicht wie sie es tut.
Gut:
# Diese Funktion testet mittels Probedivision, ob die über-
# gebene Zahl eine Primzahl ist, und gibt True oder False zurück
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
y = y + 1 + (y & 1)
return True
Schlecht:
# Diese Funktion setzt eine Variable y auf 2 und zählt sie hoch bis √x
# Wenn x % y == 0 ist, wird False zurückgegeben. Wenn y > √x ist,
# wird True zurückgegeben.
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
y = y + 1 + (y & 1)
return True
- Einzelne Anweisungen
- sollten nur dann kommentiert werden, wenn sie nicht intuitiv verständlich sind oder wenn ihr Sinn nicht unmittelbar einleuchtend ist.
Gut:
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
return False
else:
# erhöhe y um 1, falls y gerade, sonst um 2
# Grund: von den geraden Zahlen muss nur 2
# getestet werden, alle anderen geraden Zahlen
# sind Vielfache von 2. Abgesehen von 2 müssen
# nur ungerade Zahlen getestet werden.
y = y + 1 + (y & 1)
return True
Schlecht:
def ist_primzahl(x):
y = 2
while x >= sqrt(n):
if x % y == 0:
# gib False zurück
return False
else:
y = y + 1 + (y & 1)
return True