TUTORIAL
Clean Code: Buenas Prácticas para Escribir Código Limpio y Eficiente
Escribir un código limpio además de una habilidad que todos debemos tener, es una práctica esencial para cualquier desarrollador que busque crear aplicaciones escalables, fáciles de mantener y legibles por otros.
Y no solo eso, sino que también te abrirá puertas, ya que si en tus proyectos públicos tu código es limpio y utilizas buenas prácticas, es un muy buen punto para tu próxima aventura laboral.
Este tutorial te guiará a través de los principios fundamentales de Clean Code, detallando buenas prácticas que transformarán la calidad de tu código. Aprenderás a organizar mejor tus proyectos, a estructurar tus funciones y variables de manera intuitiva, y a evitar errores comunes que afectan la claridad y eficiencia del software.
Deuda técnica
Probablemente, ya hayas oído hablar sobre la importancia de la calidad del código, y no es para menos: cuando no cuidamos detalles como refactorizar o añadir comentarios claros, siempre se paga un precio.
Las excusas más comunes suelen ser la falta de tiempo para el mantenimiento, la dificultad de entender un código complejo (porque si, incluso con mucha experiencia, un código denso puede ser un desafío), o la falta de disponibilidad de un compañero para transferir el conocimiento necesario.
Adoptar prácticas de Clean Code ayuda a evitar estos problemas y a construir una base de código más robusta y comprensible para todos.
Hay cuatro tipos de deuda técnica:
- Imprudente: Por ejemplo, copiar un código que te has encontrado por internet para salir del paso sin ni siquiera entenderlo.
- Imprudente e inadvertida: Cuando no tienes conocimientos sobre buenas prácticas o patrones de diseño.
- Prudente: Y digo prudente entre comillas porque en este caso sabemos que lo estamos haciendo mal, pero dejamos para más adelante una refactorización, separar en clases, etc.
- Prudente e inadvertida: Cuando después de terminar una tarea nos damos cuenta de como podríamos haberlo hecho mejor.
Cómo mejorar nuestro código
A continuación vamos a ver algunos consejos para mejorar nuestro código 🙌.
Refactorización
Refactorizar un código es el proceso por el cual el objetivo es mejorar un código existente para que sea más entendible y tolerante a cambios. Un ejemplo puede ser una clase inmensa que realiza varias acciones distintas, la típica clase Utils
, que puede tener por ejemplo un método para generar un UUID
, otro método que realiza peticiones CURL
, etc.
La idea sería separarla en distintas clases en las que cada una cumpla sus cometidos.
En este caso es importante contar con pruebas automáticas para que cuando realicemos la refactorización, nuestro proyecto siga manteniendo el comportamiento esperado.
Nombres pronunciables y expresivos a la hora de declarar variables, constantes y métodos
Es fundamental asignar nombres claros y comprensibles a variables, constantes y métodos. Aunque a veces puede ser tentador ahorrar caracteres, hacerlo suele perjudicar la legibilidad y dificulta el entendimiento de otros desarrolladores.
Lo que para ti puede ser obvio al abreviar, para un compañero podría ser confuso y propenso a malinterpretaciones.
Opta siempre por nombres que comuniquen la intención de forma directa. Si encuentras que necesitas añadir comentarios para aclarar el propósito de un nombre, es probable que el nombre no sea lo suficientemente explícito.
Evita redundancias: Ser expresivo no implica añadir palabras innecesarias. Por ejemplo, al nombrar una función, evita prefijos como fn
o function
. Estos elementos no aportan claridad y solo agregan ruido visual.
Nombrar las variables según el tipo de dato
Si es booleano
, podemos usar prefijos como is
, can
, has
y siempre positivos.
let isUserActive: boolean = true; // indica si el usuario está activo.