Soy un desarrollador web principiante (un año de experiencia).
Un par de semanas después de graduarme, me ofrecieron un trabajo para crear una aplicación web para una empresa cuyo propietario no es un experto en tecnología. Me reclutó para evitar el robo de su idea, el alto costo de desarrollo que cobra una empresa de servicios y tener a alguien joven en quien pueda confiar a bordo para mantener el proyecto a largo plazo (llegué a estas conclusiones por mi cuenta mucho después de ser contratado ).
Feroz como era en aquel entonces, con un diploma en informática, acepté la oferta pensando que puedo construir cualquier cosa.
Estaba llamando a los disparos. Después de algunas investigaciones, me decidí por PHP y comencé con PHP simple, sin objetos, solo código de procedimiento feo. Dos meses después, todo se estaba complicando y era difícil hacer algún progreso. La aplicación web es enorme. Así que decidí revisar un marco MVC que me facilitaría la vida. Ahí es donde me encontré con el chico genial de la comunidad de PHP: Laravel. Me encantó, fue fácil de aprender y empecé a codificar de inmediato. Mi código parecía más limpio, más organizado. Se veía muy bien.
Pero de nuevo la aplicación web era enorme. La compañía me estaba presionando para entregar la primera versión, que querían implementar, obviamente, y comenzar a buscar clientes.
Debido a que fue divertido trabajar con Laravel, me hizo recordar por qué elegí esta industria en primer lugar, algo que olvidé mientras estaba atrapado en el sistema educativo de mierda.
Así que empecé a trabajar en pequeños proyectos por la noche, leyendo sobre metodologías y mejores prácticas. Revisé OOP, pasé al diseño y análisis orientado a objetos y leí el libro del tío Bob Clean Code .
Esto me ayudó a darme cuenta de que realmente no sabía nada. No sabía cómo construir software EL CAMINO CORRECTO. Pero a estas alturas ya era demasiado tarde, y ya casi he terminado. Mi código no está limpio en absoluto, solo el código de espagueti, un verdadero problema para corregir un error, toda la lógica está en los controladores y hay poco diseño orientado a objetos.
Tengo este pensamiento persistente de que tengo que reescribir todo el proyecto. Sin embargo, no puedo hacerlo ... Siguen preguntando cuándo se va a hacer todo.
No puedo imaginar este código implementado en un servidor. Además, todavía no sé nada sobre la eficiencia del código y el rendimiento de la aplicación web.
Por un lado, la compañía está esperando el producto y no puede esperar más. Por otro lado, no puedo verme ir más allá con el código real. Podría terminar, envolverlo y desplegarlo, pero solo Dios sabe lo que puede pasar cuando la gente comienza a usarlo.
¿Reescribo, o simplemente trato de enviar, o hay otra opción que me perdí?