Si bien puede ser una deliciosa cena italiana, una de las últimas cosas que desea escuchar sobre su base de código es el espagueti . La idea de que su código está tan enredado como un plato de espagueti es aterradora, pero para muchos desarrolladores, la idea es tan abstracta que no pueden manejarla (o entender cómo evitarla o solucionarla). Es por eso que en esta publicación queremos sumergirnos en lo que realmente es el código spaghetti, mostrarle algunas de las mejores prácticas para evitarlo y (cuando suceda) cómo lidiar con él.
Suscríbete a nuestro canal de Youtube
El código espagueti es una pesadilla, eso es. Como dijimos anteriormente, el término de la jerga recibe su nombre porque, como una maraña gigante de pasta de espagueti, si tiras de un hilo (pieza de código), termina entrelazándose en otro y otro y otro, hasta que él o todos las piezas enredadas se rompen.
Por ejemplo, piense en la propiedad !important en CSS. Es increíblemente poderoso, ya que permite que un diseñador anule los estilos heredados y tenga control sobre cualquier elemento en particular sin tener que volver a codificar toda la hoja de estilo. Sin embargo, cuando ellos (o los futuros desarrolladores y diseñadores) necesiten ajustar algo más, pueden agregar otra etiqueta !important para anular la anterior. Etcétera. Pero si volviera atrás y eliminara o modificara cualquiera de los que están en esa pila, cualquier número de estilos en la página podría romperse.
Que es lo que estamos tratando de evitar.
Mejores prácticas para evitar el código espagueti
1. Desarrollar estándares de codificación
La forma número uno de prevenir el código espagueti es crear y codificar estándares dentro de su organización o proyecto. Los estándares de codificación son los que hacen posibles proyectos como WordPress. Miles de desarrolladores han trabajado en WP Core, pero los estándares de codificación de WordPress han logrado que todos trabajen con las mismas pautas y realicen las tareas dentro de los mismos parámetros de la misma manera.
Los estándares de codificación son solo reglas que usted aplica. Mantienen el código de todos funcionando en el mismo patrón para que los errores sean fáciles de encontrar y corregir, y que los futuros desarrolladores (o incluso usted o su equipo actual) puedan saber exactamente lo que hace cada línea de código de la manera más eficiente posible. Si el código de Susan no pasa las pruebas, no entra. Si el código de Janine no tiene pruebas para ejecutar, se deniega la solicitud de incorporación de cambios. Tal vez Daniel no use divs en su solicitud de incorporación de cambios más reciente. No se fusionan hasta que las cosas se dividen.
Además, algunas de las bases de código originales que estaban plagadas de código espagueti eran lenguajes más antiguos sin lógica funcional. El código no estaba basado en funciones y, por lo tanto, varias lógicas se dirigían a líneas específicas dentro del código. Con proyectos pequeños, esto no es tan malo para navegar. Cuando comienza a escalar proyectos, tener referencias directas a archivos y líneas de código específicos puede impedir ese desarrollo. Los archivos pueden perderse, las líneas pueden borrarse o numerarse incorrectamente. Y depurarlo para averiguar qué hebra de espagueti se extrajo puede llevar cientos de horas-persona. Tener estándares de codificación puede evitar que este tipo de lío ocurra con tanta frecuencia.
Entonces, al desarrollar estándares, ha reducido de manera muy efectiva las posibilidades de tener un depósito de código espagueti. Si desea obtener más información sobre los estándares de codificación en general, GeeksforGeeks tiene una excelente guía .
2. Sigue una guía de estilo
Además de los estándares de codificación, tener una guía de estilo a seguir también puede evitar que su código se enrede demasiado. Si bien puede sonar similar en teoría, los dos son muy diferentes. Los estándares de codificación existen como reglas aplicables que siguen sus desarrolladores para mantener el código funcionando de manera eficiente. Estos pueden cambiar de un proyecto a otro o de un equipo a otro dentro de una organización.
Sin embargo, una guía de estilo generalmente se escribe idioma por idioma y proporciona una serie de mejores prácticas para hacer que el código sea legible y funcional. Por ejemplo, Airbnb creó una de las mejores guías de estilo para React.js que existen. Si no eres un desarrollador de React, significa casi nada. Pero para los desarrolladores de React, observar esto puede brindar una ayuda real sobre cómo se debe estructurar y escribir su código para que sea lo más accesible posible para que los futuros desarrolladores lo clasifiquen.
Una guía de estilo, a diferencia de los estándares generales de codificación, no son necesariamente reglas aplicables. Son sugerencias para hacer que el código sea más uniforme, lo que hace que el código sea más fácil de leer. Lo que evita el código de espagueti porque sabe con precisión de qué hilo está tirando en un momento dado.
3. Comenta tu código
Los comentarios de código son quizás la forma más fácil de evitar que sus repositorios se llenen de código espagueti. Cuando escribas algo, crea un comentario sobre lo que hace. Si se trata de una función o fragmento complicado, explique qué hace la lógica y por qué es importante.
Sin embargo, se encuentra con un par de problemas que dependen de los comentarios del código para evitar problemas. El primero es que agrega mucho tiempo extra a los proyectos. Cuando estás tratando de cumplir con una fecha límite o de asegurarte de que una característica funcione correctamente, no siempre es una prioridad escribir una explicación detallada de la misma. ¿Y si comienzas a comentar y te caes a la mitad del proyecto o el siguiente desarrollador no continúa? Eso es un gran plato de espagueti.
Otros se sienten abrumados por la idea de comentar su código, o aprender a comentar su código si no lo han hecho antes, debido al gran volumen que desarrollan. Lo cual es totalmente válido. Pero incluso si comenta ocasionalmente sobre líneas o fragmentos importantes (o incluso precarios), le ahorrará a alguien, potencialmente a usted mismo, el problema de tener que recurrir al pasado, tratando de descubrir qué hace.
Terminando
El código espagueti es una pesadilla, repito. Pasar innumerables horas tratando de averiguar qué línea de código se cambió en un repositorio gigantesco es una de las peores partes de ser un desarrollador. La depuración está bien (ish). La depuración y no saber por dónde empezar o qué es lo que está causando el problema, ni remotamente, no lo es. Pero si su equipo establece estándares de codificación, sigue una guía de estilo de lenguaje e incluso tiene una política de comentarios de código menor, existe una gran posibilidad de que su plato digital de espaguetis esté mucho menos enredado de lo que sería de otra manera.
¿Qué haces para evitar el código espagueti?
Imagen destacada del artículo por Donnay Style / shutterstock.com