Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
8 Hrs
25 Min
38 Seg

Código espagueti

4/19
Recursos

Aportes 23

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Recuerdo cuando empezaba a programar con PHP, no tenía a nadie que me guiara y acababa realizando mucho código espagueti, llegué al punto que necesitaba hacer cambios y decía: “PEro tengo esta función aquí, pero también la tengo acá, tengo que cambiar muchas funciones” poco a poco fui mejorando mis prácticas.

Creo que el ejemplo más común de código espagueti es cuando mezclas HTML con PHP, acabas creando una chapuza horrible que lo miras y dices “WTF is this?” lo peor que puedes hacer con PHP es imprimir HTML mediante la instrucción echo, en serio, no lo hagas.

Una forma fácil de ejemplificar el código espagueti y una buena solución es, tomando el ejemplo de la clase, un sistema que generará archivos de excel dependiendo de lo que se necesite, podríamos tener algo así:

<?php

if($generar_archivo_para_clientes){

	// TODO el codigo para generar el Excel para el cliente

}
else {

	// Exactamente el MISMO código para generar el Excel para los proveedores

}

Aquí estariamos repitiendo código, y lo único que cambia es para quién lo vamos a generar, por lo que una mejor solución podría ser:

<?php

class Excel {

    public function generar($generar_para) {
        // TODO El codigo para generar el archivo
    }
    
}



$excel = new Excel();

if($generar_archivo_para_clientes) {
    $excel->generar("clientes");
}
else {
    $excel->generar("proveedores");
}

Y de esta forma estamos reutilizando código, y solo le tenemos que dar mantenimiento al código una sola vez, y es más legible, por su puesto, podríamos tener la clase en un archivo diferente y cargarla mediante composer…

Código espagueti


Un código espagueti es código que está estructurado mediante if, while, for netamente, todo en un mismo archivo donde solamente buscamos resolver el problema. Cuando creamos código estructurado corremos peligro de crear código espagueti. La OOP nos ayuda evitarlo.

💸 El dinero en esta profesión está en el mantenimiento del código.

Cómo evitar el código espagueti

  1. Resolver el problema
  2. Crea de forma lógica y coherente diferentes métodos que reemplacen tus estructuras de control.
  3. Crea una o varias clases dependiendo el caso.

MIerd* que tan sesgado estaba, el money no esta en crear sistemas ,esta en mantenerlos, así como cualquier otra profesion, como los tecnicos en mecanica o refrigereación, no les pagan para que hagan un refri o creen un carro nuevo a su cliente.

Ellos mantien funcionando al 100 el carro solo eso y eso es complicado , wou esta fue mi cara cuando Italo dijo eso

Cabe mencionar que soy “notavo co muy poca experiencia laboral” y es por esa la razon de mi expresion

Código Spaghetti código sin ningún tipo de orden. Que funciona pero que no es legible. Esos fueron los principios del desarrollo web con PHP. Poco a poco fuimos profesionalizandonos y el paradigma POO nos terminó de elevar

como evitarlo:
1 resolver el problema.
2 crear de forma lógica métodos coherentes que reemplacen mis estructuras de control/ mejoras al código.
3 crear una o varias clases dependiendo el caso.

Re factorizar: Es cuando se mejora el código sin modificar el resultado final

😀 Refactoriza tu código para hacerlo mantenible y escalable.

Una vez un mentor me dijo “Trata de hacer las cosas lo más faciles posibles, no te quiebres la cabeza de más”, y es un buen consejo a la hora de empezar a resolver un problema, ya resulto el problema si es necesario la refactorización, comentar el código y pulirlo para llevarlo al commit con git.

Crear de forma lógica métodos coherentes que reemplacen mis estructuras de control

Código espagueti

Hace referencia al plato hondo llego de espagueti, donde todo esta allí revuelto. Con esto se puede comparar con el código cuando programamos de forma estructurada.

Un Código espagueti básicamente es que se encuentra estructurado mediante estructuras condicionales como if, while for etc.

Debemos resolver el problema, luego refactorizar, esto se da cuando mejoramos nuestro código sin alterar su resultado.
Crear las clases necesarias dependiendo del caso.

Creo que todos cuando empezamos, solo hacemos espagueti...

En el mundo laboral nos encontraremos con muchas problemáticas las cuales nos obligarán a escribir código espagueti y sin buenas prácticas puede ser por lo apresurado del proyecto final. Sin embargo, refactorizar ese código siempre deberá ser tarea, incluso el código que escribimos desde el inicio con buenas prácticas, podrá ser mejorado de algún modo, siempre pensando en que sea fácil de leer.

Gracias amigo Italo. Excelentes explicaciones. No se podria pedir a un profesor mejor

Despues de varios años en una empresa donde trabaje como programador me di cuenta que estaba creando deuda tecnica, y el programa crecio tanto, que cuando me salí ya no pude refactorizar y ahora es un gran problema para los que alli se quedaron con el mantenimiento… dolores de cabeza, fallos, pagar grandes cantidades de dinero para contratar a otro programadores, y aún asi no todos quieren entrarle a mantenerlo por lo mal que hule ese codigo. Y es por no haber tenido la tecnica de la POO en ese momento, una lastima. Pero ahora debo aprender a programar con buena técnica. Muchas gracias prof. Italo es un excelente profesor y agradezco mucho que nos comparta ese conocimiento. Gracias.

de acuerdo a lo que dije el Ing. es correcto es mejor crear Clases con metodo Invoke y que no este ligado a metodo si no que cada reporte en su libreria y solo se llame en singleton menos dolores de cabeza

Código espagueti hace referencia precisamente a un plato hondo de espagueti, todo está allí.
Imagina sacar diferentes elementos de ese plato. Es precisamente esa la comparación que queremos que hagas con el código.
Cuando creamos código estructurado corremos peligro, tenemos el riesgo de crear código espagueti y precisamente las características de la programación orientada a objetos nos ayudan a evitarlo.
Un código espagueti básicamente es un código está estructurado mediante if, why, for netamente todo en un mismo archivo y simplemente pensamos en resolver el problema.
Es correcto resolver el problema y después refactorizar.
Refactorizar, recordemos es cuando mejoramos nuestro código sin alterar su resultado.
Tengo un problema, lo resuelvo; cuando ya funciona, refactorizo.
Refactorizar es precisamente alcanzar el mismo resultado teniendo un mejor código creado.
En este caso el paso de refactorizar es nuestro escalón hacía el mundo profesional, un código que simplemente funciona puede estar lleno de grandes estructuras condicionales.
La programación orientada a objetos nos va a servir a organizar mejor todo esto, para que tengamos en el futuro un código que podamos mantener.
A veces creemos que el dinero en la programación está en la creación de sistemas y realmente no, el dinero en este negocio, el dinero en esta profesión está en el mantenimiento, en que el sistema le pueda servir a tu cliente por 5 o 10 años, si nosotros no programamos de esta manera no va a sobrevivir los primeros 2 años precisamente porque creamos código utilizando estas características que hemos explicado.
¿Cómo evitar el código espagueti?

  1. Resuelvo el problema.

  2. Crea de forma lógica y coherente diferentes métodos que reemplacen tus estructuras de control.

  3. Crea una o varias clases dependiendo el caso.

Me agrada mucho que se nos den todos estos temas de buenas prácticas antes de pasar al código.
Sin duda por querer hacer las cosas rápido, tendemos a escribir código sucio y código espagueti…
Ahora entiendo que no esta mal hacer una implementación sucia en un inicio pues se busca que funcione pero acto seguido es refactorizar esa solución para que sea más fácil un futuro mantenimiento de nuestra parte o de alguien más que le toque la desgracia de ver nuestro código jaja

Codigo espagueti.

Este surge, cuando simplemente pensamos en resolver un problema, y nunca hacer algo para mejorarlo. 

Es correcto resolver el problema y luego refactorizar.

Refactorizar es un escalon a un alto niver profesional.

Como evitar el codigo espagueti

    1. Resuleve el problema
    2. Crear de manera logica y coherente en diferentes metodos que remplaze tu estrutcura de control.
    3. Crea una o varias clases dependiendo el caso.

4. Código espagueti

¿Cómo evitarlo?

  • Paso 1: Resuelve el problema.
  • Paso 2: Crea métodos para resolver.
  • Paso 3: Crea una o varias clases (dependiendo del caso).

Creo que la diferencia entre un desarrollador con experiencia y un novato es que el primero piensa en refactorizar y el segundo dice hay que hacer todo de cero

En un punto de nuestras vidas comenzamos con PHP, pero realmente nos enseñan desde un principio a hacerlo mal.

Precisamente, termine hace poco un proyecto con PHP básico y HTML, realmente estoy emocionado por mi proyecto. Pero en el proceso me di cuenta que realmente es muy tedioso esa forma de copiar y pegar código, también cuando ocurría errores muy especifico, tomaba mucho tiempo encontrar el error y solucionarlo, cuando lo solucionaba pum 20 errores más provenientes del mismo código.
Les dejo el código de mi proyecto, por si quieren ver un ejemplo de código espagueti.
Github,