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 muy experto en tecnología. Me reclutó para evitar el robo de su idea, el alto costo de desarrollo cobrado por una empresa de servicios, y para tener a alguien joven en quien confiar a bordo para mantener el proyecto a largo plazo (llegué a estas conclusiones por mí mismo mucho después de ser contratado )
Engreído como era en aquel entonces, con un diploma en ciencias de la computación, acepté la oferta pensando que podía construir cualquier cosa.
Estaba llamando a los tiros. Después de un poco de investigación, me decidí por PHP y comencé con PHP simple, sin objetos, solo código de procedimiento feo. Dos meses después, todo se estaba volviendo desordenado y era difícil avanzar. La aplicación web es enorme. Así que decidí consultar un marco MVC que me facilitaría la vida. Ahí es donde me topé con el chico genial de la comunidad PHP: Laravel. Me encantó, fue fácil de aprender y comencé a codificar de inmediato. Mi código se veí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 que entregara 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 comencé 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 Clean Code del tío Bob .
Esto me ayudó a darme cuenta de que realmente no sabía nada. No sabía cómo construir software DE LA MANERA CORRECTA. Pero en este punto ya era demasiado tarde, y ahora casi termino. Mi código no está limpio en absoluto, solo código de espagueti, un verdadero problema para solucionar 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 hará 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 yendo más allá con el código real. Podría terminar, envolverlo e implementarlo, pero solo Dios sabe lo que podría suceder cuando la gente comience a usarlo.
¿Reescribo, o simplemente sigo intentando enviar, o hay otra opción que me he perdido?