Clean Code JavaScript - Cómo escribir código que no te dé vergüenza mostrar a tus colegas
¿Conoces esa sensación de abrir código antiguo y no entender lo que quisiste decir? ¿O cuando un colega te pide ayuda con su script y pasas horas intentando descifrarlo? El repositorio Clean Code JavaScript es una colección de reglas prácticas que te ayudarán a hacer tu código comprensible, mantenible y profesional.
¿Por qué es tan importante el código limpio?
A lo largo de más de 15 años trabajando con JavaScript, he visto cientos de proyectos. Y el problema principal de la mayoría de ellos no es la complejidad algorítmica, sino la ilegibilidad del código. Pasamos 10 veces más tiempo leyendo código que escribiéndolo. Clean Code JavaScript es una adaptación del famoso libro "Clean Code" de Robert Martin para el mundo JavaScript.
Como dice el autor del repositorio, Ryan McDermott:
"Cada pieza de código comienza como un borrador preliminar, como arcilla húmeda tomando su forma final. Esculpimos las imperfecciones cuando lo revisamos con colegas."
5 principios clave del repositorio
1. Nombres de variables significativos
El primer paso para un código limpio es una nomenclatura adecuada. Deben ser:
- Pronunciables
- Buscables (para poder encontrarlos con Ctrl+F)
- No requerir traducción mental
Malo:
const yyyymmdstr = moment().format('YYYY/MM/DD');
Bueno:
const currentDate = moment().format('YYYY/MM/DD');
2. Las funciones deben hacer una sola cosa
Este error aparece en el 90% de los proyectos. Una función no es una novela, sino un poema corto.
Malo:
function emailClients(clients) {
clients.forEach(client => {
const record = database.lookup(client);
if (record.isActive()) email(client);
});
}
Bueno:
function emailActiveClients(clients) {
clients.filter(isActiveClient).forEach(email);
}
function isActiveClient(client) {
const record = database.lookup(client);
return record.isActive();
}
3. Evitar efectos secundarios
Una función no debe modificar nada fuera de su área de responsabilidad. Esto es especialmente importante al trabajar con arrays y objetos.
Malo:
const addItemToCart = (cart, item) => {
cart.push({ item, date: Date.now() });
};
Bueno:
const addItemToCart = (cart, item) => {
return [...cart, { item, date: Date.now() }];
};
4. SOLID para JavaScript
Los principios SOLID no solo funcionan en Java y C#. Así es como se ve la Inversión de Dependencias en JS:
Malo:
class InventoryTracker {
constructor(items) {
this.items = items;
this.requester = new InventoryRequester();
}
}
Bueno:
class InventoryTracker {
constructor(items, requester) {
this.items = items;
this.requester = requester;
}
}
5. Testabilidad
El código limpio es código testeable. Cada función debe tener una única responsabilidad y un resultado predecible.
Malo:
describe('MomentJS', () => {
it('handles all cases', () => {
// 20 строк теста разных сценариев
});
});
Bueno:
describe('MomentJS', () => {
it('handles 30-day months', () => {
// один четкий сценарий
});
it('handles leap year', () => {
// другой сценарий
});
});
¿Quién se beneficiará de este repositorio?
- Desarrolladores junior: Entenderás la diferencia entre código que funciona y código bueno
- Líderes de equipo: Puedes usar estos principios para la revisión de código
- Instructores: Obtendrás excelentes ejemplos para cursos de JavaScript
- Freelancers: Los clientes valoran el código limpio y mantenible
Experiencia personal de implementación
En mi práctica, hubo un proyecto con 50 archivos de más de 500 líneas de código cada uno. Después de implementar los principios de Clean Code:
- El tiempo para agregar nuevas funcionalidades disminuyó un 40%
- El número de bugs en producción se redujo a la tercera parte
- Los nuevos desarrolladores se integraron 2 veces más rápido
¿Cómo empezar a usarlo?
- Guarda el repositorio en marcadores
- Elige 2-3 reglas que violas con más frecuencia
- Comienza a aplicarlas en código nuevo
- Refactoriza gradualmente las secciones antiguas
Como dice el autor: "Estas reglas no son dogmas, sino una guía. Nuestra profesión es joven, y todavía estamos aprendiendo."
Enlaces:
Proyectos relacionados