-
Notifications
You must be signed in to change notification settings - Fork 1
Coding Standards By Initial Team
During our project we followed the XP Practice "Coding Standards" to uniform our code and follow good practices. Even though we can not force you to follow them, we still recommend you to keep them in mind to enforce consistency throughout the entire code. Trust us, this will make your life easier in the long run 🐧
-
Methodenaufbau:
Erste Zeile: Methodennamen mit Parameter
-> Dabei immer Präfix [a | an] für Parameter wie zB.aString
,anObject
2 - n.Zeile : Kommentar
n+1. Zeile: Zeile leerlassen
n+2. Zeile: lokale Variablen
n+3. Zeile: Methodencode -
Wenn es
basicAccessor
undaccessor
gibt, mussaccessor
kommentiert werden. -
Letzte Zeile einer Funktion mit keinem Punkt.
-
In Kommentaren: Klassen werden großgeschrieben.
-
Konstruktor auf Klassenseite setzt nur die Parameter, welche übergeben werden.
-
Initialize der Variablen stets in der
initialize
-Methode der Klasse (möglichst lazy init vermeiden). -
Hardgecodede Daten als Konstanten auf Klassenseite / Klassenmethoden
-
Konstruktoren nicht mit
with:with:with:...
sondernhavingString: readingFromFile:
etc -
Konstruktoren stets mit Präfix
new
-
Bei Cascades folgender Aufbau (Methoden in extra Zeilen und eins eingerückt):
objekt
methode1;
methode2
-
Bei Blöcken keine Leerzeichen zwischen Blockinhalt und Blockklammern.
-
Format bei Ein-Statement-Blöcken, sofern Codezeile nicht zu lang:
someCode: [statement]
Format bei Blöcken mit mehreren Statements:
someCode: [
statement1.
...statementN]
-
In Schleifen haben Variablen auch die Vorsilbe [a | an] (wie in Parametern)
Bsp:self submorphs do: [:aMorph | ...]
und nichtself submorphs do: [:morph | ...]
Ausnahme bilden Variablen, die keine Collection von Objekten sind, hier wird the verwendet
Bsp:self doSomethingSelector ifNotNil: [:theSymbol | ...]
-
Klammern bei Code über mehrere Zeilen wie folgt: (Smalltalk-style brackets)
self submorphs do: [:aMorph |
code]
-
has<>
,is<>
-Methoden, die nicht direkt den Wert einer Instanzvariable wiedergeben in Category “testing”. -
Leerzeile zwischen super und eigentlichem Code:
super initialize.
code ...
-
Leerzeile vorm Return
-
Leerzeichen bei Punkten:
10 @ 10