Clean Code

¿Qué es el Clean Code?

El clean code no son reglas estrictas, sino principios que te ayudan a escribir código claro y fácil de modificar. La idea es que cualquier desarrollador pueda entenderlo sin problemas. Para que sea fácil de adaptar, debe tener:

  • Lógica clara y estructura simple.
  • Relaciones entre las partes del código visibles.
  • Clases, funciones y variables comprensibles.

El nombre lo es todo

Los nombres de variables y funciones claros y descriptivos son la base.
Olvídate de los 'x' y 'tmp', y nombra cada cosa con un sustantivo que claramente lo identifique.
Por ejemplo, si tienes una variable que hace un fetch de información

 

// Mal:
const data = await getCharacters();

// Bien:
const character = await getCharacters();

Comenta solo lo necesario

Los comentarios son como los post-it de la nevera: ¡útiles, pero no abuses de ellos!
Un buen código, que se ha creado siguiendo principios de clean code, debería de poder explicarse solo

 

Funciones cortas y específicas

Cada función debe estar centrada en un objetivo específico y nada más que eso. Nada de tener funciones infinitas que lo hacen todo.
Por ejemplo, si tienes una función hacerReceta(), no implementes toda la lógica ahí dentro. Crea sub funciones como comprarIngredientes(), pelarPatatas(), encenderSarten(), etc, que sean llamadas dentro de la función principal

Evita anidaciones profundas

Cuando en el código empezamos a anidar condicionales, es como crear un laberinto que complica la lectura y el mantenimiento.
A medida que las condiciones crecen, el código se vuelve más confuso y propenso a errores, ya que debemos seguir múltiples ramificaciones antes de llegar al final. Aquí es donde las guard clauses (o cláusulas de guarda) entran en juego.

// Ejemplo con guard clauses:

function procesar_orden (orden){
  if(orden) {
  	console.log("La orden es inválida.")
    return
  }
  if(orden.pago_completado()) {
  	console.log("El pago no está completado.")
    return
  }
  if(orden.stock_disponible()) {
  	console.log("No hay stock disponible.")
    return
  }
   console.log("Procesando la orden...")
   // Lógica para procesar la orden

}

 Mantén la consistencia

Al escribir código, es importante mantener un estilo uniforme en todo el proyecto.
Esto significa que si decides seguir ciertas convenciones o reglas (como nombres de variables, uso de espacios, formato de funciones, etc.), debes mantenerlas en todo tu código.
Cambiar de estilo a mitad de camino puede hacer que el código sea confuso, difícil de leer y más propenso a errores.

// Código con estilos uniformes:

function calcular_area_rectangulo(base, altura){ 
   const area = base * altura
   return area  
}

// Código con estilos mezclados:
  
function calcularAreaRect(base, altura){
   const Area = base * altura;
   return Area
}

 Código DRY

No repitas código innecesariamente cuando puedes reutilizar y abstraer lógica.
Si ya tienes una funcionalidad en un lado, y ahora necesitas usarla en otro, no repitas el código, extráelo a un sitio común, y úsalo en ambos.

Evita la tentación del código ingenioso

No intentes sorprender o demostrar lo mucho que sabes con códigos ultra complicados.
La simplicidad siempre es mejor y es más fácil de mantener.
Un/a buen/a desarrollador/a siempre debe buscar la solución más eficiente, sencilla y mantenible, no la más complicada.

Piensa en la legibilidad

Si tu código fuera un libro,

¿sería fácil de leer?


Usa espacios y sangrías adecuadamente.

Detalles técnicos en su lugar (SRP)

La lógica técnica (como la conexión a bases de datos, la configuración de servicios externos o la gestión de APIs) debe estar contenida en secciones bien definidas del sistema, y no mezclada con la lógica de negocio.

Evita números "hardcodeados” 

En lugar de meter números a pelo en tu código, define constantes para referenciarlos.

 

// Ejemplo (antes y después):
// # 10% discount 

function calculate_discount(price) {
	const discount = price* 0.1 
    return price - discount
}

function calculate_discount(price) {
	const TEN_PERCENT_DISCOUNT = 0.1
    const discount = price * TEN_PERCENT_DISCOUNT
    return price - discount
}

 
Made with Slides.com