[Php] ¿Por qué necesito usar un marco popular?


Answers

Aquí hay otra razón para no crear su propio marco. Ley de Linus : "con suficientes ojos, todos los errores son superficiales". En otras palabras, cuantas más personas usen un marco dado, más sólido y libre de errores será.

¿Has visto cuántos frameworks web hay para Java? En el pasado, estaba de moda que cualquier desarrollador / arquitecto medio decente escribiera su propio marco web personalizado. Y al final del día, el 95% de ellos parecía una implementación personalizada de Struts (el framework web Java más popular en ese momento). Así que básicamente crearon un clon de Struts que era: 1) propietario; y 2) no tan bien documentado y probado.

Seamos realistas: escribir nuestro propio marco de trabajo para el cliente es divertido, pero ¿qué pasará después? Se convierte en una carga de mantenimiento mantener el marco usted mismo (o el alma pobre que lo reemplaza). Y mantener el software es mucho, mucho más costoso, especialmente cuando se trata de marcos personalizados. ¿La empresa está en el negocio para resolver problemas de dominio o en el negocio de mantener los marcos?

Olvidé quién lo dijo, pero una vez escuché una gran cita: "La primera regla para crear tu propio marco es: no". Alguien más probablemente haya realizado el esfuerzo de hacerlo y probablemente haya hecho el mismo trabajo que tú hubieras hecho. Ahórrese tiempo, esfuerzo y pruebas.

Question

He sido desarrollador de PHP por muchos años, con muchas herramientas en mi haber; herramientas que yo mismo he desarrollado, o soluciones de uso libre en las que he aprendido a confiar.

Miré en CodeIgniter recientemente, y descubrí que tienen muchas clases y rutinas de ayuda para ayudar con el desarrollo, pero no vi nada en los ejemplos que no pude hacer tan fácilmente con mis propias herramientas. Cosas simples como abstracciones de bases de datos, ayudantes de correo electrónico, etc. Había un código interesante relacionado con las rutas: asignación de URL a los controladores correctos; pero incluso eso no es particularmente difícil de codificar si alguna vez ha escrito una aplicación web de estilo MVC con URL bonitas.

Incluso después de revisar algunos de los otros marcos populares, todavía no veo nada que ahorre mucho tiempo. Incluso al mirar los foros, veo personas que luchan por obtener las herramientas para trabajar para ellos. Entiendo cómo serían más útiles para los desarrolladores junior, ya que las habilidades de diseño del sistema completo toman un tiempo para comprender y apreciar completamente.

Sin embargo, a menudo me dicen que debería usar un marco estándar para producir mis soluciones, pero aún no estoy convencido. ¿Cuál es el beneficio real para alguien como yo? ¿Acabo de ser elitista, o es esta una opinión común?

Editar: Mirando algunas de las respuestas aquí, ¿debería considerar empaquetar mi conjunto de herramientas como su propio marco, escribir documentación y publicar tutoriales? Si tengo dudas sobre cómo abordar los marcos de otros, ¿abrirlos y tener más en cuenta me ayudaría a mejorar mis habilidades / herramientas?




Lo que esencialmente tienes es tu propio marco. Por lo tanto, no es un ahorro de tiempo PARA USTED, porque ya ha dedicado el tiempo para desarrollar el marco. Si no tuviera eso para construir, sería más fácil y más rápido usar un marco existente que hacer el suyo propio.

Lo que debe observar es si su marco de trabajo es mejor que otras opciones y si su familiaridad con su propio código es mayor que si otros ojos lo observaran y otras personas lo usaran de maneras lo suficientemente diferentes que la probabilidad de que los problemas encontrados y corregidos son mucho más altos.

Además, si su marco es mucho mejor que los demás, podría considerar abrir el suyo a la comunidad;)




Puede que tengas razón ... sin embargo, no subestimaría el poder de muchos, como un ejemplo, phpBB es lo que me preocupa que use la solución bb. ¿Por qué? Porque hay muchos, muchos miles de mensajes en sus paneles de soporte y muchas personas que lo usan que están bien informados y pueden ayudar a las personas a resolver problemas.

Por lo tanto, la única razón en su caso para usar un marco popular es el de muchos otros que lo utilizan, informan errores en su contra, lo reparan y lo respaldan. Será complicado obtener la misma cobertura en sus propias bibliotecas.




¿Puedes resolver los problemas que tienes con tu código de forma más rápida y confiable que los marcos públicos?

Si es así, entonces sigue usando el tuyo.

Si no, entonces encuentre el marco que hace un mejor trabajo y ejecute con él para ese proyecto.

Todo se reduce a qué base de código hace el trabajo mejor (por el valor de mejor dado por el cliente;))




Es probable que el código del marco esté bien probado y relativamente libre de errores. Al usarlo, se ahorrará tiempo probando / manteniendo su propio código para hacer lo mismo.

Y cualquier tiempo ahorrado es bueno. La pereza vale la pena en la programación.




Tres razones por las que puedo pensar de inmediato:

  • Un marco bien conocido será familiar para otros desarrolladores que puedan tener que trabajar en su proyecto.
  • Un marco bien conocido tendrá recursos como libros, paneles de discusión y otros expertos que se pueden usar para buscar más información
  • Los gerentes a menudo tendrán una filosofía de "no reinventar la rueda". De hecho, las soluciones existentes probablemente hayan resuelto los mismos problemas que descubrirías si creas tu propia solución.

Dicho todo esto, aún puede haber un lugar para sus propias soluciones. No tendríamos tantos marcos (o lenguajes de scripting) para elegir si nadie comenzaba algo nuevo.




Creo que la razón principal es que cuando utilizas un marco común, hay muchas personas que están familiarizadas instantáneamente con tu producto.

Aparte de eso, creo que es muy importante que las herramientas que uses realmente hagan el trabajo. Si resulta familiar para otras personas, entonces eso es una ventaja.




Creo que si no ves la necesidad de usar un framework, entonces no lo hagas.

La razón por la que utilizo un marco, por ejemplo Django para python o Rails para Ruby o Webforms y MVC para ASP.net es porque hacen que sea más fácil y rápido escribir aplicaciones para ellos. En el caso de Ruby y Python, no usar un marco para mí me volvería loco.

Si tiene algo que funciona y no ve la necesidad de utilizar un marco, le diría que se quede con lo que cree que es mejor. Pero, aún estaría al día con los marcos.




Las ventajas son que ya está escrito y probado por varias personas, por lo tanto, es menos probable que sea propenso a errores.

Las desventajas son que no está específicamente diseñado para su aplicación y, por lo tanto, probablemente tenga un peor rendimiento.

En general, realmente no veo muchas razones para usar una considerando que ya tienes la tuya ... aunque puede valer la pena liberar esa fuente abierta para que otros puedan verificar errores y recomendar mejoras.