¿Por qué debería usar un marco cuando puedo hacer una aplicación igual de rápido mientras uso solo el idioma principal?

Tengo curiosidad sobre la base de su reclamo. ¿Has probado ambos enfoques con una aplicación no trivial y has comparado los resultados? ¿Has escrito suficientes aplicaciones sin marco para ver cuántas cosas tienen en común?

Además, incluso si ambos enfoques son igualmente rápidos para usted, como implica, ¿por qué no usar un marco? ¿Qué inconveniente estás evitando? ¿La inversión de tiempo en aprender el marco?

Asegúrese de tener claras las compensaciones que está haciendo.

  • Si su aplicación está expuesta a Internet pública, es poco probable que haga un trabajo tan bueno asegurándola como lo han hecho los desarrolladores del marco. ¿Estás defendido contra CSRF? XSS? ¿Inyección SQL? El marco es.
  • Si su código habla con una base de datos, es probable que usar un marco web ORM sea más rápido y fácil de trabajar que generar SQL.
  • Si su código maneja cuentas de usuario e inicio de sesión, un marco ciertamente sería menos trabajo para obtener resultados equivalentes.
  • Si alguien además de usted va a trabajar en esto, deseará que use un marco con documentación.
  • Si alguien además de usted va a trabajar en esto, su jefe deseará lo mismo.

A menudo, los marcos proporcionan más funcionalidad o una seguridad reforzada.

Solía ​​desarrollar con lenguaje PHP. Y confío principalmente en el marco de Symfony.

Si tiene que crear un sitio básico con espacio personal para el usuario, deberá crear un formulario de inicio de sesión, manejar la página del espacio personal (hacer que solo sea visible para el usuario correcto) y crear una base de datos para almacenar la información sobre el usuario.

Esto no es bastante difícil con los métodos básicos de PHP. Incluso puedo decir que con un marco tendrás que aprender muchas cosas antes de sentirte cómodo con él.

Pero al final, el marco evitará el ataque csrf, la inyección SQL u otros ataques en los que no debería haber pensado.

El marco también es el fruto de muchos años de trabajo y reflexión. Algunos mecanismos están diseñados para ofrecer una gran capacidad de resistencia y evolución.

Los marcos suelen ser más fáciles de usar en colaboración. Al usar Symfony, otro desarrollador de Symfony puede leer mi código fácilmente. En el marco, existe la palabra “marco”. Todo el equipo usa el mismo marco.

En este caso, simplemente reinventó la rueda .

La programación web no es un problema nuevo, pero cambia drásticamente a lo largo de estos años. Los sitios web de la vieja escuela están escritos en CGI basado en C o Perl, prácticamente ya nadie utiliza CGI. PHP, otro lenguaje de scripting de la vieja escuela, también sufre cambios drásticos; muchos marcos web con script PHP aparecen a lo largo de los años. jQuery es una vez la solución definitiva para la programación front-end, pero docenas de frameworks front-end se disparan. Estas soluciones se implementan para algunos problemas anteriores a la programación web.

Si aún desea tener la sensación de usar el lenguaje central para la programación web, considere micro-frameworks como Sinatra (Ruby), Flask (Python) o Express.js (Node.js). Micro-frameworks brindan mucha menos asistencia que los frameworks MVC clásicos, permitiéndole sentir que hace la programación web usted mismo. Son adecuados para herramientas de aprendizaje. Para productos del mundo real, la mayoría de las personas se refieren a marcos MVC como Rails o Django.

En ese caso, esencialmente estaría escribiendo su propio marco. Esto no es malo, ya que obtiene muchos beneficios:

  • Usted controla cuán estable es el marco, no un tercero
  • Tienes un profundo conocimiento de cómo funciona cada poquito, nada es mágico
  • Su marco está especializado de la manera que usted quiere que sea
  • Aprende mucho sobre lo que implica construir un marco, lo que le da una apreciación de los preexistentes
  • No tiene que preocuparse de que las modas de framework vayan y vengan

Sin embargo, también hay inconvenientes:

  • Probablemente reinventarás la rueda cuando se trata de muchos problemas comunes que los desarrolladores encuentran en el desarrollo de aplicaciones
  • La implementación de sus propias características de seguridad seguramente será menos segura que los sistemas que han sido probados por muchos desarrolladores experimentados a lo largo de varios años.
  • Si su marco no funciona de manera muy diferente a los marcos populares comparables, en términos prácticos, es posible que haya perdido mucho tiempo construyendo un marco en lugar de resolver el problema real

Como todo, hay compensaciones. Si se siente ambicioso, está cansado de los cambios frecuentes en los marcos populares existentes y desea una aplicación personalizada, escribir su propio marco puede ser su mejor opción.

Por otro lado, si no tiene el tiempo (probablemente más de un año), no confía en su capacidad para escribir sistemas de autorización y protección contra falsificaciones, o simplemente no quiere escribir un mecanismo de enrutamiento cuando ya existen 20 tipos diferentes, solo use un marco existente.

Me resulta difícil imaginar que alguien que construye una aplicación desde cero pueda lograr los mismos objetivos en el mismo tiempo que alguien que utiliza un marco. Ese es el objetivo de un marco preescrito. Si de alguna manera fue capaz de lograr esto, entonces creo que la respuesta a su pregunta probablemente sería “No lo haría”. O tal vez el problema que intentaba resolver no era lo suficientemente grande como para justificar algún tipo de marco en el primer momento. lugar.