Quando tenti di impostare valori predefiniti per parametri che possono esistere in variabili di ambiente in JavaScript, vedo spesso questo modello:
var lag;
try {
lag = process.env.THROTTLE_LAG;
}
catch ( e ) {
lag = 100;
}
Non mi piace perché, mentre segue un modello JavaScript comune di dichiarare una variabile vuota allo scopo di assegnargli successivamente un valore in modo condizionale, lo schema di utilizzo di try / catch come uno stratagemma logico di ramificazione sembra poco fico. Esaminando i fattori tecnici, tende ad eseguire sub-ottimamente se confrontato con altre strategie di ramificazione. Esaminando i fattori umani, i colleghi hanno sostenuto che manca di leggibilità. Ovviamente opinioni diverse .
Questa soluzione più corta utilizza un blocco di cattura vuoto, il che mi fa rabbrividire.
var lag = 100;
try {
lag = process.env.THROTTLE_LAG;
}
catch ( e ) {}
(Sono aperto all'idea che il mio rabbrividire è riflessivo e non riflette un vero problema.)