For faster navigation, this Iframe is preloading the Wikiwand page for Código espagueti.

Código espagueti

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada. Busca fuentes: «Código espagueti»noticias · libros · académico · imágenesEste aviso fue puesto el 15 de noviembre de 2013.
El código espagueti parece retorcido y enmarañado como el bol epónimo de espagueti; seguir el trayecto de una sola hebra a lo largo de la totalidad es extremadamente difícil.

El código espagueti es un término peyorativo para los programas de computación que tienen una estructura de control de flujo compleja e incomprensible. Su nombre deriva del hecho que este tipo de código parece asemejarse a un plato de espaguetis, es decir, un montón de hilos intrincados y anudados.

Tradicionalmente suele asociarse este estilo de programación con lenguajes básicos y antiguos, donde el flujo se controlaba mediante sentencias de control muy primitivas como goto y utilizando números de línea.

Evolución de los lenguajes de programación

[editar]

En los años 60 solo se podía definir el flujo de un programa a base de poner sentencias IF anidadas y variables booleanas para decidir la lógica. Más adelante ya se podían escribir funciones, de lo más general a lo más específico y en la actualidad con la programación orientada objetos hay conceptos como la modularidad, abstracción, encapsulamiento, desacoplamiento, herencia, etc... Hay herramientas y conceptos más que suficientes como para evitar escribir este tipo de código.

Refactorización

[editar]

No es aceptable escribir código espagueti ni siquiera inicialmente ya que ello dificulta la comprensión del problema. Cuando durante el proceso de desarrollo de una función o programa se observa que la complejidad del código crece de forma que el código se está volviendo espagueti, es el momento de repasar la parte ya completada, lo que se conoce como refactorización. Esta limpieza periódica durante el desarrollo permite mantener la complejidad bajo control e incrementa significativamente la productividad del programador y comprensión del problema.

De código espagueti a programación estructurada

[editar]

Se puede dar una comparación con las reglas básicas del periodismo de como escribir una noticia. Estas indican que en el titular de la noticia tiene que mostrar la información más importante, a continuación entrar en detalle en el primer párrafo y después desglosar en los apartados subsecuentes. Así pues en el main del programa deben figurar las funciones más generales y cada una de ellas tiene que llamar a continuación a funciones más específicas.

Con "refactorizar - extraer método" se puede realizar automáticamente cada rama de los if's del código espagueti se convierta en una función, mejorando mucho la visibilidad.

De programación estructurada a programación orientada a objetos

[editar]

Una vez se tienen las funciones claramente visibles es posible identificar cuales conforman una responsabilidad común y no entrelazada con el resto del código y por tanto es posible separarlas en objetos diferentes que ya tendrán los métodos y propiedades (que pueden ser privados, no visibles, desde el resto del código).

Relacionado[1]

[editar]

Código ravioli

[editar]

Se refiere al código que está compuesto por clases bien estructuradas y fácilmente entendibles por separado, pero muy complicadas de entender como un todo.

El código Ravioli se basa en que el código se refactoriza en demasiados trozos pequeños del mismo que llegan a ser difíciles o imposibles de seguir. Este caso se da también en la programación orientada a objetos, donde el origen del código ya no está disperso entre funciones o procedimientos, sino también entre clases y paquetes, haciendo que el código sea difícilmente trazable.

Código lasaña

[editar]

Se refiere al código cuyas capas son tan complicadas e interconectadas que un cambio en una requeriría cambios en otras.

Código pizza

[editar]

Se refiere al código que tiene una arquitectura muy plana.

Código hotdog

[editar]

Es aquel código que, al ser tan complicado, basta un pequeño error en el mismo para que todo el programa deje de funcionar.

Referencias

[editar]
  1. Cursos Python. «Código espagueti, el paradigma de programación más usado». Cursos Python. Consultado el 8 de mayo de 2020. 
{{bottomLinkPreText}} {{bottomLinkText}}
Código espagueti
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?