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 statt laenge)
  • Konstanten großschreiben (LENGTH statt length)
  • mehrere Wörter in einer Konstante mit Unterstrich trennen (MAX_LENGTH statt MAXLENGTH)
  • Variablen mit Kleinbuchstaben beginnen (variable statt Variable)
  • Camelcase bei Variablen verwenden (myVariableName statt myvariablename)
  • alle Variablen typisieren und nicht any verwenden (private variableName: string; statt private variableName; oder private 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 statt methode)
  • Methoden mit Kleinbuchstaben beginnen (method statt Method)
  • Camelcase bei Methoden verwenden (myFirstMethod statt myfirstmethod)
  • selbsterklärende Methodennamen verwenden (convertStringToInt statt methodOne)

Klassen

  • Bezeichnungen von Klassen in Englisch (class statt klasse)
  • Klassen mit Großbuchstaben beginnen (Class statt class)
  • Camelcase bei Klassen verwenden (MyFirstClass statt Myfirstclass)
  • verständliche Klassennamen verwenden, keine Verben in Klassennamen (HomePageController statt ClassDoesSomething)
  • 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);