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 (
lengthstattlaenge) - Konstanten großschreiben (
LENGTHstattlength) - mehrere Wörter in einer Konstante mit Unterstrich trennen (
MAX_LENGTHstattMAXLENGTH) - Variablen mit Kleinbuchstaben beginnen (
variablestattVariable) - Camelcase bei Variablen verwenden (
myVariableNamestattmyvariablename) - alle Variablen typisieren und nicht
anyverwenden (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 (
methodstattmethode) - Methoden mit Kleinbuchstaben beginnen (
methodstattMethod) - Camelcase bei Methoden verwenden (
myFirstMethodstattmyfirstmethod) - selbsterklärende Methodennamen verwenden (
convertStringToIntstattmethodOne)
Klassen
- Bezeichnungen von Klassen in Englisch (
classstattklasse) - Klassen mit Großbuchstaben beginnen (
Classstattclass) - Camelcase bei Klassen verwenden (
MyFirstClassstattMyfirstclass) - verständliche Klassennamen verwenden, keine Verben in Klassennamen (
HomePageControllerstattClassDoesSomething) - 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);