fbpx
Wikipedia

Código espagueti

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.

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.

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

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

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 esta 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

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 debe haber 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

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]

Código ravioli

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

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

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

Referencias

  1. Cursos Python. «Código espagueti, el paradigma de programación más usado». Cursos Python. Consultado el 8 de mayo de 2020. 
  •   Datos: Q1047561

código, espagueti, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, noviembre, 2013, código, espagueti, término, peyorativo, para, programas, computación, tienen, estructura, control, flujo, compleja, inc. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 15 de noviembre de 2013 El codigo espagueti es un termino peyorativo para los programas de computacion que tienen una estructura de control de flujo compleja e incomprensible Su nombre deriva del hecho que este tipo de codigo parece asemejarse a un plato de espaguetis es decir un monton de hilos intrincados y anudados El codigo espagueti parece retorcido y enmaranado como el bol eponimo de espagueti seguir el trayecto de una sola hebra a lo largo de la totalidad es extremadamente dificil Tradicionalmente suele asociarse este estilo de programacion con lenguajes basicos y antiguos donde el flujo se controlaba mediante sentencias de control muy primitivas como goto y utilizando numeros de linea Indice 1 Evolucion de los lenguajes de programacion 2 Refactorizacion 3 De codigo espagueti a programacion estructurada 4 De programacion estructurada a programacion orientada a objetos 5 Relacionado 1 5 1 Codigo ravioli 5 2 Codigo lasana 5 3 Codigo pizza 6 ReferenciasEvolucion de los lenguajes de programacion EditarEn los anos 60 solo se podia definir el flujo de un programa a base de poner sentencias IF anidadas y variables booleanas para decidir la logica Mas adelante ya se podian escribir funciones de lo mas general a lo mas especifico y en la actualidad con la programacion orientada objetos hay conceptos como la modularidad abstraccion encapsulamiento desacoplamiento herencia etc Hay herramientas y conceptos mas que suficientes como para evitar escribir este tipo de codigo Refactorizacion EditarNo es aceptable escribir codigo espagueti ni siquiera inicialmente ya que ello dificulta la comprension del problema Cuando durante el proceso de desarrollo de una funcion o programa se observa que la complejidad del codigo crece de forma que el codigo se esta volviendo espagueti es el momento de repasar la parte ya completada lo que se conoce como refactorizacion Esta limpieza periodica durante el desarrollo permite mantener la complejidad bajo control e incrementa significativamente la productividad del programador y comprension del problema De codigo espagueti a programacion estructurada EditarSe puede dar una comparacion con las reglas basicas del periodismo de como escribir una noticia Estas indican que en el titular de la noticia tiene que mostrar la informacion mas importante a continuacion entrar en detalle en el primer parrafo y despues desglosar en los apartados subsecuentes Asi pues en el main del programa debe haber las funciones mas generales y cada una de ellas tiene que llamar a continuacion a funciones mas especificas Con refactorizar extraer metodo se puede realizar automaticamente cada rama de los if s del codigo espagueti se convierta en una funcion mejorando mucho la visibilidad De programacion estructurada a programacion orientada a objetos EditarUna vez se tienen las funciones claramente visibles es posible identificar cuales conforman una responsabilidad comun y no entrelazada con el resto del codigo y por tanto es posible separarlas en objetos diferentes que ya tendran los metodos y propiedades que pueden ser privados no visibles desde el resto del codigo Relacionado 1 EditarCodigo ravioli Editar Se refiere al codigo que esta compuesto por clases bien estructuradas y facilmente entendibles por separado pero muy complicadas de entender como un todo El codigo Ravioli se basa en que el codigo se refactoriza en demasiados trozos pequenos del mismo que llegan a ser dificiles o imposibles de seguir Este caso se da tambien en la programacion orientada a objetos donde el origen del codigo ya no esta disperso entre funciones o procedimientos sino tambien entre clases y paquetes haciendo que el codigo sea dificilmente trazable Codigo lasana Editar Se refiere al codigo cuyas capas son tan complicadas e interconectadas que un cambio en una requeriria cambios en otras Codigo pizza Editar Se refiere al codigo que tiene una arquitectura muy plana Referencias Editar Cursos Python Codigo espagueti el paradigma de programacion mas usado Cursos Python Consultado el 8 de mayo de 2020 Datos Q1047561Obtenido de https es wikipedia org w index php title Codigo espagueti amp oldid 134503456, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos