JS: Buenas prácticas

(Parte 1)

Las buenas prácticas no son reglas.

Son consejos o recomendaciones basadas en la experiencia.

Muchas de estas prácticas aplican a cualquier lenguaje de programación.

Objetivo

  • Más claro y legible
  • Más mantenible
  • Con menos errores

Escribir código:

  • Más simple

Queremos escribir código de mejor calidad

Tengo que entenderlo

Escribimos código para otras personas, no para las computadoras

Tengo que entenderlo

Pasamos más tiempo leyendo código que escribiéndolo

Tengo que entenderlo

Piensen en sus compañeros y su yo del futuro

function funcionCreadaPorPablo(a, b, c) {
  const h = a + b + c;
  const j = h * 0.2;
  const t = h + j;

  return t;
}
function sumarImpuestoAlPrecio(precioProducto1, precioProducto2, precioProducto3) {
  const sumatoriaDePrecios = precioProducto1 + precioProducto2 + precioProducto3;
  const impuestoAplicado = sumatoriaDePrecios * 0.2;
  const precioTotal = sumatoriaDePrecios + impuestoAplicado;
  
  return precioTotal;
}

Tengo que entenderlo

Usar nombres descriptivos, significativos y pronunciables para variables, constantes y funciones

Tengo que entenderlo

Para las funciones, usemos verbos que transmitan la intención y nombres significativos para los parámetros

Evitemos las variables (ó constantes) globales

Mala idea. Corremos el peligro de que cualquier otro código que usemos modifique la funcionalidad

Indentar el código

Lo hace más claro y legible

Comentarios

Escribir sólo la cantidad necesaria

Modularizar

La idea es separar los problemas en subproblemas más chicos

Modularizar

Cada problema individual es más fácil de resolver que el problema original

Modularizar

El código queda más legible

Modularizar

En lo posible, queremos escribir funciones más chicas que hagan una tarea particular

Modularizar

Más fácil de leer

Más fácil de entender

Más fácil de programar

Más fácil de testear

Más fácil de reutilizar

Evitar

==
var

Usar

===

Usar

let
const

Por defecto, usemos

const

Usamos

let

únicamente si

pensamos reasignar la variable

Inicializar variables

De esta forma evitamos comportamientos inesperados en las funciones

Evitemos duplicar código

Ver si es posible reutilizar funcionalidades usando funciones

function comprarMateriaPrima() {
  const precio = prompt("Ingrese costo de materia prima");

  if (saldoCuenta >= precio) {
    saldoCuenta -= precio;
  } else {
    saldoCuenta = 0;
    alert("Te has quedado sin dinero.");
  }
}
function pagarSueldo() {
  const sueldo = prompt("Ingrese el sueldo a pagar");

  if (saldoCuenta >= sueldo) {
    saldoCuenta -= sueldo;
  } else {
    saldoCuenta = 0;
    alert("Te has quedado sin dinero");
  }
}
function pagarTraslado(){
  const precio = prompt("Ingrese el costo del traslado");

  if (saldoCuenta >= precio) {
    saldoCuenta -= precio;
  } else {
    saldoCuenta = 0;
    alert("Te has quedado sin dinero en la cuenta");
  }
}

Tenemos funcionalidad repetida

Todas las funciones verifican si el saldo es mayor al precio, decrementan el precio de la cuenta o la dejan en cero

Podríamos crear una nueva función que realice esta tarea particular y ejecutarla dentro de las otras funciones

function descontarDinero(cantidadDeDinero) {
  if (saldoCuenta >= cantidadDeDinero) {
    saldoCuenta -= cantidadDeDinero;
  } else {
    saldoCuenta = 0;
    alert("Te has quedado sin dinero en la cuenta :(");
  }
}

Reescribimos las funciones originales para que utilicen la nueva función creada

function comprarMateriaPrima() {
  const precio = prompt("Ingrese costo de materia prima");
  descontarDinero(precio);
}
function pagarSueldo() {
  const sueldo = prompt("Ingrese el sueldo a pagar");
  descontarDinero(sueldo);
}
function pagarTraslado() {
  const precio = prompt("Ingrese el costo del traslado");
  descontarDinero(precio);
}

Somos más felices que antes

?

¿

Algo más avanzado...

Recursos

Eso es todo.

Por ahora...

js-buenas-practicas

By Nicolás Quiroz

js-buenas-practicas

  • 181