Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software_entwicklung:programmierrichtlinen:java [2010-02-22 16:20] zueger1software_entwicklung:programmierrichtlinen:java [2010-06-18 16:13] (aktuell) – gelöscht zueger1
Zeile 1: Zeile 1:
-====== Programmierrichtlinen für Java ====== 
  
-===== Namensgebung ===== 
-^ Namen für ^ beginnen mit ^^ Beispiele ^ 
-| Konstanten | Substantiv | Kleinbuchstaben | size, pwm, serialVersionUID | 
-| System-Konstanten | | | PORTF, FPSCR, DDR, PI ((Konstanten aus Reference-, User- Manuals, etc. werden wenn möglich so übernommen, wie sie in diesen Quellen festgelegt sind, es sei denn, sie widersprechen der Java-Syntax. Wichtig ist, dass man diese rechnerunterstützt, case-sensitive (Ctrl-F) suchen kann.))| 
-| Variablen | Substantiv | Kleinbuchstaben | version, wordSize | 
-| | Adjektiv | Kleinbuchstaben | full, ready | 
-| Fuktionen | Substantiv | Kleinbuchstaben | length() | 
-| | Adjektiv | Kleinbuchstaben | full(), equal()((Name bezeichnet Fuktionswert))| 
-| Methoden | Verb | Kleinbuchstaben | drawLine()((Imperativ))| 
-| Klassen | Substantiv | Grossbuchstaben | File, FifoQueue, Stack | 
-| Pakete | Substantiv | Kleinbuchstaben | java.io, ntb, target.ppc555 | 
- 
-**Namenslänge:** Lokale, temporär verwendete Namen sollten kurz sein (z.B. m, k, len). Globale, wichtige Namen sollten sprechend, aber nicht zu lang sein (z.B. words, nofEntries). 
- 
-**Sprache:** Wählen sie englische Namen. Sie sind meist kürzer als deutsche Namen und passen besser zu den englischen Schlüsselwörtern. Ausserdem können sie Programme mit englischen Namen leichter an Personen weitergeben, die kein Deutsch verstehen (z.B. über das Internet). 
- 
-**Worttrennung:** Die Lesbarkeit von Namen, die aus mehreren Wörtern bestehen, wird durch entsprechende Gross-/Kleinschreibung (z.B. drawLine) verbessert, solche Bezeichner werden vom Leser rascher als Einheit erfasst und können besser von Parameterlisten unterschieden werden, als die Trennung mit Unterstrichen, z.B. draw_line. Die letztere Variante hat ihre Wurzeln in der Zeit, als die "Schnell-Drucker" nur Grossbuchstaben drucken konnten. 
- 
-===== Kommentare ===== 
-Kommentieren Sie, was nicht im Programm steht (und wichtig ist). Vermeiden Sie Kommentare, die nur 
-das wiederholen, was man ohnehin aus dem Programmtext ablesen kann. 
-Wählen Sie für Kommentare wennmöglich dieselbe Sprache wie für Namen im Programm. Aus den oben 
-geschilderten Gründen sind englische Kommentare vorteilhaft. 
-Verwenden Sie javadoc-konforme Kommentare für Klassen, Felder und Methoden, z.B. 
-<code java> 
-/** A stack of integer. 
-  * Implements a LIFO data structure of fixed length, .... 
-  */ 
-public class Stack { 
-  /** indicates stack overflow. 
-    * This flag may be checked after a push() operation. 
-    * If overflow == true, the parameter of the most recent push() operation was ignored. 
-    */ 
-  public boolean overflow; 
-  ... 
- 
-  /** pushes the value item onto the stack. 
-    * The overflow flag tells if the operation was successful. 
-    */ 
-  public void push (int item) {...} 
-  ... 
-} 
-</code> 
- 
-Verwenden Sie Trennkommentare zur Einleitung von Anweisungsfolgen, die eine bestimmte Aufgabe 
-erfüllen, z.B. 
- 
-<code java> 
-//---- Read input array 
-In.open("input.txt"); 
-int len = In.readInt(); 
-int [] a = new int[len]; 
-for(int i = 0; i < len; i++) a[i] = In.readInt(); 
- 
-//---- Invert array 
-invert(a); 
- 
-//---- Print inverted array 
-for(int i = 0; i < len; i++) Out.print(a[i] + " "); 
-Out.println(); 
-</code> 
- 
-Halten Sie die Anweisungsfolgen einer Methode möglichst frei von Kommentaren. Jedesmal, wenn Sie einen Kommentar schreiben, sollten Sie sich überlegen, ob Sie nicht stattdessen das Programm vereinfachen oder bessere Namen wählen können, um dadurch den Kommentar zu vermeiden. Ein gutes Programm ist nicht eines, das möglichst viele Kommentare enthält, sondern eines, das möglichst wenige Kommentare benötigt. Falls Sie dennoch einmal einen Algorithmus ausführlich kommentieren wollen, tun Sie das im Kopfkommentar der Methoden und Klassen und nicht zwischen den einzelnen Anweisungen. Bei zu vielen Kommentaren zwischen den Anweisungen kann es sein, dass Sie das Programm vor lauter Kommentaren nicht mehr sehen. 
- 
-===== Einrückungen ===== 
-Verwenden Sie als Einrückungstiefe 1 Tabublatorzeichen oder 2 Leerzeichen. Zu tiefe Einrückungen sind genauso unleserlich wie zu wenig tiefe oder gar keine Einrückungen. Die folgenden Codemuster zeigen, wie Sie Programmkonstrukte einrücken sollten: 
-==== Anweisungen ==== 
-<code java> 
-if(cond) { 
-  ... 
-} else if(cond) { 
-  ... 
-} else { 
-  ... 
-} 
-</code> 
- 
-<code java> 
-switch(expr) { 
-  case c1: 
-    ... 
-  case c2: 
-    ... 
-  default: 
-    ... 
-} 
-</code> 
- 
-<code java> 
-try { 
-  ... 
-} catch(Exeption1 e) { 
-  ... 
-} finally { 
-  ... 
-} 
-</code> 
- 
-<code java> 
-while(cond) { 
-  ... 
-} 
-</code> 
- 
-<code java> 
-do { 
-  ... 
-} while(cond); 
-</code> 
- 
-<code java> 
-for(...) { 
-  ... 
-} 
-</code>