logo of the SSW institute ;)
Computer Science
System Software

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Talks
Library
Gallery
Links
Search

Webmaster


Codierungsrichtlinien

am Institut für Systemsoftware

Guter Programmierstil trägt wesentlich zur Lesbarkeit und Wartbarkeit von Programmen bei. Richtlinien für die Namensgebung, Kommentierung oder Einrückung von Anweisungen lassen sich zwar nicht absolut festlegen; die folgende Zusammenstellung empfiehlt aber einige bewährte Konventionen, an die Sie sich bei der Abfassung Ihrer Übungen halten sollten. Wichtiger, als einen bestimmten Programmierstil einzuhalten, ist es allerdings, einen konsistenten Stil zu befolgen.

Namensgebung

Namen für beginnen mit beginnen mit Beispiele
Konstanten, Variablen Substantiv
Adjektiv
Kleinbuchstaben
Kleinbuchstaben
version, wordSize
full, ready
Typen Substantiv Großbuchstaben File, TextFrame
Prozeduren Verb Kleinbuchstaben writeString
Funktionen Substantiv
Adjektiv
Kleinbuchstaben
Kleinbuchstaben
position
empty, equal
Pakete Substantiv(pl.) Kleinbuchstaben swing, util

Namenslänge

  • Lokale, temporäre Namen: eher kurz (i, j, n)
  • Globale, wichtige Namen: sprechend aber nicht zu lang (words, nEntries)

Sprache

  • Englisch (ist meist kürzer als deutsch und passt besser zu den englischen Schlüsselwörtern)

Kommentare

  • Nicht die Menge der Kommentare zählt, sondern ihre Qualität.
  • Kommentieren, was nicht im Programm steht
  • Englische Kommentare
  • Kursiv (eventuell kleinerer Font)
  • Teilaufgaben wenn nötig durch Trennkommentare kennzeichnen
    xxx
    //----- find line containing pos
    yyy
  • Kopfkommentar von Modulen
    • Autor und letztes Änderungsdatum
    • evt. kurze Beschreibung des Zwecks des Moduls
    • evt. Änderungslogbuch, z.B.:
      Nr. Datum Autor Änderung
      01 07-08-16 HM Error in getName corrected
      02 07-10-01 HM New procedure checkParams

Einrückungen

Anweisungen
if (cond) {           switch (expr) {
  xxx                   case c0: xxx; break;
} else if (cond) {      case c1: yyy; break;
  yyy                   default: zzz
} else {              }
  zzz
}

while (cond) {        do {                 for (i = a; i < b; i++) {
  xxx                   xxx                  xxx
}                     } while (cond);      }
Klassen
class C {

  int f;

  void foo() {
    xxx
  }
}

Allgemeines

  • Einrückungstiefe: 1 Tabulator oder 2 Leerzeichen
  • Zusammengehörige Anweisungen auf gleiche Zeile, falls es die Lesbarkeit erlaubt
  • Kurze zusammengesetzte Anweisungen in einer Zeile:
    if (cond) stat1; else stat2;