Las mejores prácticas para escribir un código limpio

11/10/2022
desarrollador tecleando codigo

Escribir código que sea fácil de leer y entender es la clave para crear programas que sean mantenibles, correctos y con menos defectos. Sin embargo, el código limpio es algo más que buenas prácticas de formateo y nombramiento de variables.

Los principios del código limpio se han derivado de décadas de experiencia de algunos de los ingenieros de software más reconocidos del mundo. Este artículo se centrará en las técnicas para escribir código que sea fácilmente comprensible para los miembros de tu equipo, para ti y para otros desarrolladores.

Nos adentraremos en algunos de los escollos más comunes a la hora de escribir código, especialmente a medida que los proyectos se hacen más grandes y complejos. Los consejos de este artículo provienen de muchos años de experiencia trabajando con bases de código de alta calidad en empresas como Google e Intuit.

Comentando el código

A menudo se pasan por alto los comentarios como herramienta útil para escribir un código limpio. El mejor comentario es una frase bien escrita, pero los comentarios pueden proporcionar un contexto añadido al código que podría perderse si el código no es comprensible. Los comentarios también pueden utilizarse para documentar el código.

Lo ideal es escribir un código limpio que se documente por sí mismo, pero un conjunto completo de código bien documentado puede tardar mucho tiempo en crearse, si se hace correctamente. Si estás trabajando en una base de código que no tiene una buena documentación, los comentarios pueden ser una forma rápida y fácil de añadir información valiosa sobre tu código.

Por ejemplo, si tienes una regla de negocio específica para calcular un valor en tu código, deberías añadir un comentario que explique la regla para que el siguiente desarrollador que tenga que modificar el código entienda claramente cómo funciona. También deberías comentar otros elementos del código, como la lógica de las funciones, el uso de variables y las sentencias condicionales.

No te repitas (DRY)

El principio DRY es un principio común en la ingeniería de software y se aplica a la escritura de código. DRY significa “No te repitas”. Significa que debes evitar duplicar el trabajo en tu base de código creando código reutilizable.

Duplicar código en toda la base de código es una mala práctica. No sólo conduce a una base de código que es desordenada y difícil de leer, sino que también hace más difícil modificar y ampliar el código. Una base de código limpia contiene una sola copia de cada componente, con las entradas, salidas y funcionalidad adecuadas.

Si usted se encuentra tratando de resolver un problema en un lugar, y luego tener que volver y resolver ese problema en otro lugar, necesitas encontrar una manera de DRY hasta el código. Si tienes un único componente de código que es reutilizable, puedes usar ese componente en múltiples lugares y evitar duplicar el código.

Principio de responsabilidad única

Este es uno de los principios más importantes de la ingeniería de software, y es la base para escribir código que sea fácil de entender y mantener. El principio de responsabilidad única establece que cada componente de tu sistema debe tener una y sólo una razón para cambiar, y esa razón debe ser obvia.

Esto significa que cada componente de tu código debe tener una sola responsabilidad, es decir, una sola razón de ser. Si un componente de tu código tiene más de una razón de ser, entonces ese componente debería dividirse en componentes más pequeños con una única razón de ser. El ejemplo más común de esto es una función que realiza más de una operación.

Siempre que escriba una función o un método, debería preguntarse qué hace exactamente esta función. ¿Realiza una sola operación? Si hace más de una cosa, entonces deberías considerar dividir esa función en dos o más funciones más pequeñas que realicen cada una una sola operación.

Utiliza nombres de variables descriptivos

Otra de las mejores prácticas para escribir código limpio es el uso de convenciones de nomenclatura descriptiva para las variables. Las convenciones de nomenclatura de variables son importantes porque se utilizan para ayudar a los lectores a entender el propósito de una variable o una función en tu código.

Por ejemplo, si usas el nombre de variable “i” para representar un índice en un bucle, un lector de tu código sabrá exactamente lo que representa esa variable sin tener que consultar los comentarios o la documentación.

Debe utilizar convenciones que tengan sentido para el tipo de datos que está almacenando en una variable. Por ejemplo, si almacena una fecha en una variable, “date” es una buena opción para el nombre de la variable. Si almacena el nombre de un usuario en una variable, “nombre” es una buena opción para el nombre de la variable.

Escribir código simple y refactorizar continuamente

Mientras escribes código, deberías pensar siempre en cómo escribirlo de la forma más sencilla posible. Deberías esforzarte por conseguir un código que sea fácil de modificar, fácil de extender y sencillo de leer.

De hecho, deberías refactorizar constantemente tu código mientras lo escribes. Deberías escribir unas cuantas líneas de código, y luego tomarte unos minutos para limpiar tu código y hacerlo más fácil de leer. Si haces esto mientras escribes el código, cuando vuelvas a él más tarde, te será más fácil entender lo que hace el código porque todo estará escrito de una forma única y directa.

Esta refactorización continua te ayudará a escribir un código que es más fácil de entender ahora, y más fácil de modificar y ampliar en el futuro.

Gestión de errores

Es preferible devolver las excepciones en lugar de manejarlas con código. Las excepciones son más claras y mantenibles si trabajamos con aspectos (AOP), y las excepciones podrían ser fácilmente manejadas si lo hacemos.

Es crucial registrar lo que ha sucedido en el registro y fallar lo antes posible, para que podamos ver qué sucede y por qué con mayor precisión. Podemos contextualizar los errores y añadir pistas que nos ayuden a entender por qué ha fallado algo, aunque no podamos reproducir los datos.

Cuando trabajemos con APIs o bibliotecas externas, debemos atrapar sus excepciones y envolverlas en nuestras propias excepciones para evitar el acoplamiento. De esta manera, nuestro código estará mejor preparado para futuras modificaciones.

Conclusión

Las mejores prácticas para escribir código limpio que se discuten en este artículo son aplicables a la mayoría de los lenguajes de programación. Si eres nuevo en la programación, o si quieres mejorar la calidad de tu código, deberías hacer un esfuerzo para aprender estas mejores prácticas e incorporarlas a tu código.

Lo más importante es recordar que escribir código limpio es un proceso iterativo. No podrás escribir un código que otra persona pueda entender la primera vez que lo intentes. Se necesita tiempo, paciencia y la voluntad de aprender de los errores.