Formatierung
Formatierung ist subjektiv. Wie viele Regeln hier gibt es keine feste Vorschrift, der man folgen muss. Der Hauptpunkt ist: Diskutiert nicht über Formatierung. Es gibt viele Tools die dies automatisieren. Nutzt sie! Es ist Zeit- und Ressourcenverschwendung, wenn Entwickler über Formatierung streiten.
Für Aspekte, die nicht durch automatische Formatierung abgedeckt sind (Einrückung, Tabs vs. Leerzeichen, doppelte vs. einfache Anführungszeichen usw.), findet ihr hier Orientierungshilfen.
Konsistente Großschreibung verwenden
JavaScript ist dynamisch typisiert, daher verrät die Groß-/Kleinschreibung viel über Variablen, Funktionen usw. Diese Regeln sind subjektiv - Teams können eigene Konventionen wählen. Wichtig ist: Bleibt konsequent bei eurer Wahl.
Schlecht:
const DAYS_IN_WEEK = 7;
const daysInMonth = 30;
const songs = ["Back In Black", "Stairway to Heaven", "Hey Jude"];
const Artists = ["ACDC", "Led Zeppelin", "The Beatles"];
function eraseDatabase() {}
function restore_database() {}
class animal {}
class Alpaca {}Gut:
const DAYS_IN_WEEK = 7;
const DAYS_IN_MONTH = 30;
const SONGS = ["Back In Black", "Stairway to Heaven", "Hey Jude"];
const ARTISTS = ["ACDC", "Led Zeppelin", "The Beatles"];
function eraseDatabase() {}
function restoreDatabase() {}
class Animal {}
class Alpaca {}Aufrufende und aufgerufene Funktionen sollten nah beieinander stehen
Wenn eine Funktion eine andere aufruft, platziert sie im Code vertikal nah beieinander. Idealerweise steht die aufrufende Funktion über der aufgerufenen. Wir lesen Code normalerweise von oben nach unten, wie eine Zeitung. Euer Code sollte diesem Lesefluss entsprechen.
Schlecht:
class PerformanceReview {
constructor(employee) {
this.employee = employee;
}
lookupPeers() {
return db.lookup(this.employee, "peers");
}
lookupManager() {
return db.lookup(this.employee, "manager");
}
getPeerReviews() {
const peers = this.lookupPeers();
// ...
}
perfReview() {
this.getPeerReviews();
this.getManagerReview();
this.getSelfReview();
}
getManagerReview() {
const manager = this.lookupManager();
}
getSelfReview() {
// ...
}
}
const review = new PerformanceReview(employee);
review.perfReview();Gut:
class PerformanceReview {
constructor(employee) {
this.employee = employee;
}
perfReview() {
this.getPeerReviews();
this.getManagerReview();
this.getSelfReview();
}
getPeerReviews() {
const peers = this.lookupPeers();
// ...
}
lookupPeers() {
return db.lookup(this.employee, "peers");
}
getManagerReview() {
const manager = this.lookupManager();
}
lookupManager() {
return db.lookup(this.employee, "manager");
}
getSelfReview() {
// ...
}
}
const review = new PerformanceReview(employee);
review.perfReview();