Development Guidelines - TickTack-Zeiterfassung/TickTack-Wiki GitHub Wiki
Git
- Commits immer mit sinnvoller Bezeichnung.
Quellcode
Allgemein
- Kommentare auf deutsch
- Kommentare möglichst genau und verständlichen formulieren
- Alle tslint-Fehler beheben
TypeScript
Variablen & Konstanten
- Bezeichnungen von Variablen & Konstanten in Englisch (
length
stattlaenge
) - Konstanten großschreiben (
LENGTH
stattlength
) - mehrere Wörter in einer Konstante mit Unterstrich trennen (
MAX_LENGTH
stattMAXLENGTH
) - Variablen mit Kleinbuchstaben beginnen (
variable
stattVariable
) - Camelcase bei Variablen verwenden (
myVariableName
stattmyvariablename
) - alle Variablen typisieren und nicht
any
verwenden (private variableName: string;
stattprivate variableName;
oderprivate variableName: any;
) - jede Methode zur Dokumentation mit einem Blockkommentar versehen:
/**
* Kurze Beschreibung der Methode
*
* @param {typ} nameOfVariable Wozu ist die Variable?
* @param ...
*
* @returns {typ} Was genau wird zurückgegeben?
*/
Methoden
- Bezeichnungen von Methoden in Englisch (
method
stattmethode
) - Methoden mit Kleinbuchstaben beginnen (
method
stattMethod
) - Camelcase bei Methoden verwenden (
myFirstMethod
stattmyfirstmethod
) - selbsterklärende Methodennamen verwenden (
convertStringToInt
stattmethodOne
)
Klassen
- Bezeichnungen von Klassen in Englisch (
class
stattklasse
) - Klassen mit Großbuchstaben beginnen (
Class
stattclass
) - Camelcase bei Klassen verwenden (
MyFirstClass
stattMyfirstclass
) - verständliche Klassennamen verwenden, keine Verben in Klassennamen (
HomePageController
stattClassDoesSomething
) - Klassen- bzw. Objektvariablen immer als private deklararieren und (falls Zugriff von außen benötigt) Getter- und Setter-Methoden erstellen
- jede Klasse zur Dokumentation mit einem Blockkommentar versehen:
/**
* @author Name des Autors
*
* Kurze Klasseninfo/-überschrift
*
* Falls nötig detaillierte Beschreibung, was die Klasse macht.
*/
Lazy Loading
Wir verwenden Lazy Loading, d.h. eine Page muss nicht importiert und dem NavigationController übergeben werden. Stattdessen reicht es aus, den Page Namen als String zu übergeben.
Richtig:
this.navCtrl.push('ExamplePage');
Falsch:
import { ExamplePage } from 'pages/example-page';
this.navCtrl.push(ExamplePage);