He estado trabajando en una nueva startup durante tres meses, pero no he usado ningún framework. Mi código no es spaghetti, pero no tiene ninguna estructura MVC. ¿Debo convertirlo a un marco?

Primero te dejaré esta cita del libro Eloquent Javascript:

Un estudiante había estado sentado inmóvil detrás de su computadora durante horas, frunciendo el ceño oscuramente. Estaba tratando de escribir una solución hermosa para un problema difícil, pero no pudo encontrar el enfoque correcto. Fu-Tzu lo golpeó en la parte posterior de su cabeza y gritó ‘¡Escribe algo! *’ El estudiante comenzó a escribir una solución fea. Después de que terminó, de repente entendió la hermosa solución.

Como Dale mencionado en su respuesta a continuación. El objetivo de una Startup es satisfacer una necesidad insatisfecha de alguien. A la persona no le importa su código o la sostenibilidad o belleza de su código, lo único que le importa es la solución.

Otra cosa en la que pensar es que el código nunca se termina, solo se abandona. Mientras ejecute este inicio, siempre refactorizará, deshacerá y eliminará partes de su código. He trabajado en una startup donde para codificar de manera más eficiente cambiamos de un framework PHP llamado Qcodo a Ruby on Rails. Teníamos ambos marcos ejecutándose uno al lado del otro hasta que reescribimos con éxito (con el tiempo) todo el PHP en Ruby Code.

Es posible cambiar más tarde y algunos dirán aún mejor porque ahora que lo ha completado la primera vez, realmente comprende lo que debe resolverse la próxima vez.

Si su código proporciona la solución que necesita para ejecutar su inicio, continúe con el código que tiene y trate con la sostenibilidad de su código más adelante. No olvide que está administrando un negocio, todos los días que no están en el mercado es un día en que podría haber perdido un cliente o un negocio potencial.

Aprender un buen marco también es algo bueno y para ilustrar que le daré otra cita del Javascript Eloquent:

Un estudiante preguntó: ‘Los programadores de antaño usaban solo máquinas simples y no lenguajes de programación, sin embargo, hicieron hermosos programas. ¿Por qué utilizamos máquinas complicadas y lenguajes de programación? ‘. Fu-Tzu respondió: “Los constructores de antaño solo usaban palos y arcilla, pero construían hermosas chozas”.

Un buen marco le permitirá crear aplicaciones web en una fracción del tiempo que le llevaría codificar cada aspecto de la misma. Hará que la conexión a la base de datos sea rápida y segura, hará que las páginas de enrutamiento sean más fáciles, la autenticación más fácil y un montón de otras cosas que cada aplicación tiene que lidiar más rápido y más fácil, lo que le permite concentrarse en lo que es único sobre su aplicación y obtener esa parte perfectamente.

Entonces sí, cambie a un marco … pero probablemente más tarde.

(Esta respuesta es correcta solo para la persona que la solicitó, porque nunca trabajó con ningún marco y no puede dedicar demasiado tiempo para aprender, por lo que sugiero un marco que sea el más fácil de aprender entre los marcos php y “menos como un marco” según Rasmus Lerdorf (el creador de PHP). Sugeriré marcos como Yii, CakePHP, Symfony o Laravel para aquellos que ya conocen un poco de MVC y se sienten cómodos (y tienen tiempo para) aprender conceptos avanzados. )


Está bien dejar el proyecto tal como está si ya lo codificó como máximo, pero si no lo codificó en absoluto y apenas está comenzando, pero el único problema es aprender MVC, entonces pruebe CodeIgniter, le encantaría lo fácil es aprender cuando nunca trabajaste con un framework MVC (porque es “menos como un framework” )

Para aprender los conceptos básicos de CodeIgniter, pruebe los tutoriales gratuitos de phpacademy en CodeIgniter, estos tutoriales son para principiantes y faltan algunas buenas prácticas, pero le ayudarán a comenzar con CodeIgniter.
CodeIgniter 2 Cookbook también es un buen libro una vez que aprendes los conceptos básicos.
La guía del usuario de Codeigniter es excelente y casi todas las características de CodeIgniter se explican en ella.

No MVC y dices que no es espagueti? Probablemente lo sea. Pero ese no es el verdadero problema. El verdadero problema es la deuda técnica general que está acumulando. Como mencionó Dale Mitchell Hurley, si solo está explorando el mercado, quédese con lo que tiene. Es posible que desee intentar mejorarlo lentamente con algunos componentes separados y ORM para ralentizar la tecnología. deuda. Esto también facilitará la transferencia de su base de código más adelante. Si no usó el marco de programación antes, es posible que se sorprenda de que Symfony no sea factible aprender en un mes en el nivel requerido.

Considere la siguiente configuración, puede refactorizar dentro de su código actual con bastante facilidad (dependiendo de sus habilidades). Al hacer esto, tendrá una aplicación MVC adecuada y totalmente funcional sin todos los gastos generales (computacionales y de aprendizaje) que los marcos con todas las funciones definitivamente le brindarían:
Enrutador – Solicitud / Respuesta – Controladores: mrjgreen / phroute
ORM: doctrina / doctrina2
Plantillas: twigphp / Twig

Sin embargo, si está cerca de la inversión, probablemente consideraría reescribir la aplicación. En este punto, su idea ya estaba evaluada y desea expandirla. Este es el momento en que podría reescribirlo completamente en el marco estándar de Symfony.

El objetivo de una startup es identificar una necesidad no satisfecha que los clientes están dispuestos a pagar para resolverla de una manera que eventualmente generará ganancias, no construir la base del código perfecto. Cada vez que piense que tiene la base de código perfecta, encontrará otro paradigma que ralentizará su desarrollo en un momento en el que necesita ser ultra receptivo.

Si está a punto de lanzar, una reescritura completa será una pérdida de tiempo porque ni siquiera sabe si el mercado comprará lo que está vendiendo. Lo mejor es lanzar algo que necesite arreglar y validar la idea y luego tratar de tener la base de código perfecta. Si la idea es muy popular, sabes que se requiere una reconstrucción y luego puedes acercarte a quemarte para llegar a un v2. Si la idea es un fracaso, solo ha perdido un tiempo mínimo y puede pasar a la siguiente idea.

Si su único conductor es porque todos los demás lo están haciendo, entonces no, siga haciendo lo que está haciendo. También puede hacer una estructura de tipo mvc en PHP sin un marco.

Si ha llegado hasta aquí y desea eliminarlo y comenzar de nuevo, es posible que desee volver a visitar sus diseños de inmediato. Asegúrate de haberlo pensado todo. El salto de marco no debe hacerse en un capricho, debes pensar realmente estas cosas. Si ha llegado al punto en que le pregunta a la gente de Internet qué debe hacer con su bebé de lo que no tenemos conocimiento, me hace pensar que esto aún no se ha pensado completamente.

Debieras. El propósito de una startup es obtener un producto viable mínimo para los usuarios, no un código hermoso (al menos al principio). Los marcos encapsulan muchas cosas ocultas y ayudan a acelerar y mantener su código organizado en el camino.