Variables

Utiliza nombres con sentido y de fácil pronunciación para las variables

Mal:

const yyyymmdstr = moment().format("YYYY/MM/DD");

Bien:

const fechaACtual = moment().format("YYYY/MM/DD");

Utiliza el mismo tipo de vocabulario para el mismo tipo de variables

Mal:

conseguirInformacionUsuario();
conseguirDatosCliente();
conseguirRegistroCliente();)

Bien:

conseguirUsuario();

Utiliza nombres que puedan ser buscados

Leeremos más código del que jamás escribiremos. Es importante que el código que escribamos sea legible y se puede buscar en él. Al no crear variables que sean significativas para entender nuestro código... Estamos entorpeciendo a sus lectores. Haz tus variables sean fáciles de entender y buscar. Herramientas como buddy.js y ESLint pueden ayudan a identificar constantes no nombradas.

Mal:

// Para que cojones sirve 86400000?
setTimeout(blastOff, 86400000);

Bien:

// Declaralas como constantes nombradas
const MILISEGUNDOS_POR_DIA = 86400000;

setTimeout(blastOff, MILISEGUNDOS_POR_DIA);

Utiliza variables explicativas

Mal:

const direccion = "Calle Mallorca, Barcelona 95014";
const expresionRegularCodigoPostalCiudad = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
guardarCP(
  direccion.match(expresionRegularCodigoPostalCiudad)[1],
  direccion.match(expresionRegularCodigoPostalCiudad)[2]
);

Bien:

const direccion = "One Infinite Loop, Cupertino 95014";
const expresionRegularCodigoPostalCiudad = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/;
const [, ciudad, codigoPostal] =
  direccion.match(expresionRegularCodigoPostalCiudad) || [];
guardarCP(ciudad, codigoPostal);

Evita relaciones mentales

Explícito es mejor que implícito.

Mal:

const ciudades = ["Barcelona", "Madrid", "Sitges"];
ciudades.forEach(l => {
  hacerAlgo();
  hacerAlgoMas();
  // ...
  // ...
  // ...
  // Espera, para que era `l`?
  dispatch(l);
});

Bien:

const ciudades = ["Barcelona", "Madrid", "Sitges"];
ciudades.forEach(direccion => {
  hacerAlgo();
  hacerAlgoMas();
  // ...
  // ...
  // ...
  dispatch(direccion);
});

No añadas contexto innecesario

Si tu nombre de clase/objeto ya dice algo, no lo repitas en tu nombre de variable

Mal:

const Coche = {
  marcaCoche: "Honda",
  modeloCoche: "Accord",
  colorCoche: "Azul"
};

function pintarCoche(coche) {
  coche.colorCoche = "Rojo";
}

Bien:

const Coche = {
  marca: "Honda",
  modelo: "Accord",
  color: "Rojo"
};

function pintarCoche(coche) {
  coche.color = "Rojo";
}

Utiliza argumentos por defecto en vez de circuitos cortos o condicionales

Los argumentos por defecto suelen ser más limpios que los cortocircuitos. Ten en cuenta que si los usas, solo se asignara ese valor por defectos cuando el valor del parámetro sea undefined. Otros valores "falsos" como '', " ", false,null, 0 y NaN, no serán reemplazado por un valor predeterminado pues se consideran valores como tal.

Mal:

function crearMicroCerveceria(nombre) {
  const nombreMicroCerveceria = nombre || "Hipster Brew Co.";
  // ...
}

Bien:

function crearMicroCerveceria(nombre = "Hipster Brew Co.") {
  // ...
}