Variables
Usa nombres de variables significativos y pronunciables
Mal:
const yyyymmdstr = moment().format("YYYY/MM/DD");Bien:
const currentDate = moment().format("YYYY/MM/DD");Usa el mismo vocabulario para variables del mismo tipo
Mal:
getUserInfo();
getClientData();
getCustomerRecord();Bien:
getUser();Usa nombres buscables
Leeremos más código del que escribiremos. Es crucial que el código que escribimos sea legible y localizable. Al no usar nombres que transmiten significado para entender nuestro programa, perjudicamos a los lectores. Haz tus nombres buscables. Herramientas como buddy.js y ESLint pueden ayudar a identificar números mágicos sin nombre.
Mal:
// What the heck is 86400000 for?
setTimeout(blastOff, 86400000);Bien:
// Declare them as capitalized named constants.
const MILLISECONDS_PER_DAY = 60 * 60 * 24 * 1000; //86400000;
setTimeout(blastOff, MILLISECONDS_PER_DAY);Usa variables explicativas
Mal:
const address = "One Infinite Loop, Cupertino 95014";
const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
saveCityZipCode(
address.match(cityZipCodeRegex)[1],
address.match(cityZipCodeRegex)[2]
);Bien:
const address = "One Infinite Loop, Cupertino 95014";
const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
const [_, city, zipCode] = address.match(cityZipCodeRegex) || [];
saveCityZipCode(city, zipCode);Evitar el mapeo mental
Lo explícito es mejor que lo implícito.
Mal:
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(l => {
doStuff();
doSomeOtherStuff();
// ...
// ...
// ...
// Wait, what is `l` for again?
dispatch(l);
});Bien:
const locations = ["Austin", "New York", "San Francisco"];
locations.forEach(location => {
doStuff();
doSomeOtherStuff();
// ...
// ...
// ...
dispatch(location);
});Evita agregar contexto innecesario
Si tu clase/objeto ya indica información, no repitas eso en el nombre de la variable.
Mal:
const Car = {
carMake: "Honda",
carModel: "Accord",
carColor: "Blue"
};
function paintCar(car, color) {
car.carColor = color;
}Bien:
const Car = {
make: "Honda",
model: "Accord",
color: "Blue"
};
function paintCar(car, color) {
car.color = color;
}Usa parámetros predeterminados en lugar de cortocircuitos o condicionales
Los parámetros predeterminados son más limpios que los cortocircuitos. Ten en cuenta que si los usas, tu función solo proveerá valores predeterminados para argumentos undefined. Otros valores "falsos" como '', "", false, null, 0 y NaN no serán reemplazados por valores predeterminados.
Mal:
function createMicrobrewery(name) {
const breweryName = name || "Hipster Brew Co.";
// ...
}Bien:
function createMicrobrewery(name = "Hipster Brew Co.") {
// ...
}