¿Qué es el código espagueti y cómo evitarlo?
Publicado: 2020-07-03Si bien puede ser una deliciosa cena italiana, una de las últimas cosas de las que querrá saber sobre su base de código son los espaguetis . La idea de que su código está tan enredado como un plato de espaguetis es horrible, pero para muchos desarrolladores, la idea es tan abstracta que no pueden manejarla (o entender cómo evitarla o arreglarla). Es por eso que en esta publicación queremos profundizar en lo que realmente es el código espagueti, mostrarte algunas de las mejores prácticas para evitarlo y (cuando suceda) cómo lidiar con él.
Suscríbete a nuestro canal de Youtube
¿Qué es Spaghetti Code?
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 tira de una hebra (pieza de código), termina entrelazándose en otra y otra y otra, hasta que o todas las piezas enredadas se rompen.
Por ejemplo, piense en la propiedad! Important de 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 recodificar toda la hoja de estilo. Sin embargo, cuando ellos (o futuros desarrolladores y diseñadores) necesiten ajustar algo más, pueden agregar otra etiqueta ! Important para anular la anterior. Etcétera. Pero si tuviera que volver atrás y eliminar o alterar cualquiera de los de esa pila, cualquier número de estilos en la página podría romperse.
Que es lo que intentamos 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 hecho que todos trabajen dentro de 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 hace cumplir. 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 qué hace cada línea de código de la manera más eficiente posible. Si el código de Susan no pasa sus pruebas, no entra. Si el código de Janine no tiene pruebas para ejecutar, la solicitud de extracción se rechaza. Quizás Daniel no usa divs en su solicitud de extracción más reciente. No fusionar hasta que las cosas se dividan.
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 se basaba 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 desaparecer, las líneas pueden eliminarse 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 desorden suceda con tanta frecuencia.

Entonces, al desarrollar estándares, ha reducido de manera muy efectiva las posibilidades de tener un repositorio de código espagueti. Si desea obtener más información sobre los estándares de codificación en general, GeeksforGeeks tiene una guía excelente.
2. Siga 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 parecer similar en teoría, los dos son muy diferentes. Los estándares de codificación están ahí 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, lo que 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, entonces no significa casi nada. Pero para los desarrolladores de React, mirar esto puede ser de gran ayuda 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 revisen.
Una guía de estilo, a diferencia de los estándares generales de codificación, no son necesariamente reglas que se puedan hacer cumplir. 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 espagueti porque sabe con precisión de qué hilo está tirando en un momento dado.
3. Comente su 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 escriba algo, cree un comentario sobre lo que hace. Si es una función o un fragmento complicado, explique qué hace la lógica y por qué es importante.
Sin embargo, se encuentra con un par de problemas al depender de los comentarios del código para evitar problemas. La primera es que agrega mucho tiempo extra a los proyectos. Cuando está tratando de cumplir con una fecha límite o asegurarse de que una función esté funcionando correctamente, no siempre es una prioridad escribir una explicación detallada de la misma. ¿Y si comienza a comentar y se cae a mitad del proyecto o el siguiente desarrollador no continúa? Ese es un gran plato de espaguetis.
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 completamente válido. Pero incluso si comenta ocasionalmente sobre líneas o fragmentos importantes (o incluso precarios), salvará a alguien, potencialmente a usted mismo, de la molestia de usarlo en el pasado, tratando de averiguar 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 desarrollador. La depuración está bien (más o menos). Depurar y no saber por dónde empezar o qué es lo que causa el problema de forma remota 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 de espagueti digital esté mucho menos enredado de lo que estaría de otra manera.
¿Qué haces para evitar el código espagueti?
Imagen destacada del artículo por Donnay Style / shutterstock.com
