Saltar al contenido principal

馃Ч C贸digo Limpio - La Gu铆a Definitiva para Desarrolladores en 2024

2 min de lectura
Jhon Alejandro Garcia Garcia
Tech Lead @ LegalAI

驴Alguna vez has mirado tu c贸digo y pensado que, aunque funcional, podr铆a parecer m谩s profesional? Lo que diferencia a un desarrollador senior no es solo la l贸gica, sino tambi茅n la claridad y la estructura en cada l铆nea.

Escribe c贸digo legible para humanos, no s贸lo para m谩quinas.

驴Sab铆as que los desarrolladores pasan alrededor del 50% de su tiempo leyendo c贸digo escrito por otros? La legibilidad ya no es opcional, es una necesidad. La claridad del c贸digo es una de las claves para reducir la deuda t茅cnica, ya que muchas veces es algo que dejamos pasar con el tiempo. Es importante tener en cuenta una serie de par谩metros para que nuestro c贸digo se vea m谩s profesional.

Evita las iteraciones anidadas

Como l铆der t茅cnico, algo que veo con frecuencia es el uso de iteraciones anidadas, las cuales hacen muy tediosa la lectura del c贸digo. Aunque esto puede deberse a una estructura de datos mal planteada, muchas veces es m谩s sencillo disminuir la complejidad del algoritmo desde c贸mo procesamos la informaci贸n.

Aqu铆 dejo un ejemplo que nos ayuda a entender esto:

 const data = [ 
{ category: 'A', values: [1, 2, 3] },
{ category: 'B', values: [4, 5] },
];

data.forEach(item => {
item.values.forEach(value => {
console.log(`${item.category}: ${value}`);
});
});

A continuaci贸n, un ejemplo de c贸mo manejarlo correctamente:

const data = [ 
{ category: 'A', values: [1, 2, 3] },
{ category: 'B', values: [4, 5] },
];

function logValues(category, values) {
values.forEach(value => {
console.log(`${category}: ${value}`);
});
}

data.forEach(item => logValues(item.category, item.values));

V谩lida siempre tus arreglos antes de operar con ellos

Otra pr谩ctica que veo com煤nmente es el uso de m茅todos propios de los arreglos sin validar previamente que la variable sea efectivamente un arreglo. En JavaScript, los datos no son tipados, lo que permite que su tipo cambie, o que variables solo est茅n inicializadas sin tener un valor asignado.

Aqu铆 dejo un ejemplo que nos ayuda a entender esto:

const items = undefined;
const filteredItems = items.filter(item => item > 2);

Y a continuaci贸n, un ejemplo del manejo correcto:

const items = undefined;

if (Array.isArray(items)) {
const filteredItems = items.filter(item => item > 2);
}

Evita las funciones ternarias anidadas

Un tema que para m铆 tambi茅n es de gran importancia es el uso de funciones ternarias anidadas. Aunque las funciones ternarias son 煤tiles para escribir c贸digo m谩s limpio, pueden convertirse en un dolor de cabeza cuando se anidan.

Aqu铆 un ejemplo que nos ayuda a entender esto:

const getStatus = (status) => {
return status === 'success' ? 'Operaci贸n exitosa' :
status === 'error' ? 'Hubo un error' :
status === 'loading' ? 'Cargando...' :
'Estado desconocido';
};

Y este es un ejemplo de c贸mo manejarlo correctamente:

const getStatus = (status) => {
const getStatus = (status) => {
const statusMessages = {
success: 'Operaci贸n exitosa',
error: 'Hubo un error',
loading: 'Cargando...',
};

return statusMessages?.[status] || 'Estado desconocido';
};

No permitas que la deuda t茅cnica se acumule

Podr铆a enumerar muchos otros problemas que surgen, en su mayor铆a, por el af谩n y que permiten que la deuda t茅cnica se acumule. Mi invitaci贸n a los equipos de desarrollo es a que presten atenci贸n a este tipo de pr谩cticas y no dejen pasar por alto este tipo de c贸digo. Esto habla mucho de la calidad del trabajo que realizan y, aunque pueda parecer algo b谩sico, d茅mosle la importancia que merece.