Mise en forme
La mise en forme est subjective. Comme beaucoup de règles ici, il n'y a pas de règle absolue à suivre. L'essentiel est de NE PAS DISCUTER sur la mise en forme. Il existe une multitude d'outils pour automatiser cela. Utilisez-en un ! C'est une perte de temps et d'argent que les ingénieurs débattent de la mise en forme.
Pour les éléments ne relevant pas du formatage automatique (indentation, tabulations vs espaces, guillemets doubles vs simples, etc.), consultez cette section pour des recommandations.
Utiliser une capitalisation cohérente
JavaScript étant non typé, la capitalisation donne beaucoup d'informations sur les variables, fonctions, etc. Ces règles étant subjectives, votre équipe peut choisir ce qu'elle veut. L'important est que, quel que soit votre choix, soyez cohérent.
Mauvais :
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 {}Bon :
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 {}Les fonctions appelantes et appelées doivent être proches
Si une fonction en appelle une autre, placez ces fonctions les unes près des autres verticalement dans le fichier source. Idéalement, placez la fonction appelante juste au-dessus de la fonction appelée. Nous tendons à lire le code de haut en bas, comme un journal. À cause de cela, structurez votre code en conséquence.
Mauvais :
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();Bon :
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();