¿Cuáles son las desventajas de usar un marco web?

Por lo general, no hago A2A anónimo, pero a juzgar por su pregunta, puedo ver que hay cierta confusión en cuanto al propósito y la efectividad de los marcos y me gustaría ayudar a aclarar las cosas.

Sobre la pregunta 1

Todos los marcos establecidos tendrán comunidades activas durante años. Si hay algo que no debes temer, es un marco que se está volviendo obsoleto. Incluso algo tan desactualizado como CodeIgniter todavía tiene una base de usuarios increíblemente activa y se mantiene, a pesar de ser completamente innecesario durante años. Sin embargo, sus apuestas más seguras son los siguientes marcos y sus versiones:

  • Symfony 2.7
  • Symfony 2.8
  • Sílex
  • Laravel 5.1
  • Lumen (derivación de Laravel 5.1)
  • Phalcon 2.1

Estos tienen las comunidades más grandes y el soporte a largo plazo de sus desarrolladores. Otros marcos son proyectos de pasatiempo o no merece la pena prestarles atención.

De estas 5 instancias, Phalcon, Silex y Lumen son las mejores opciones para su caso de uso de desarrollar una API porque son las más livianas, aunque técnicamente, cualquiera de ellas lo hará. Si se está preguntando, Phalcon es el más rápido, pero eso es solo porque está instalado como una extensión PHP, no como un paquete PHP normal.

Para resumir el punto 1, las posibilidades de que el marco que elija se vuelva obsoleto en un corto período de tiempo son cero o casi cero.

Sobre la pregunta 2

No extiende un marco extendiendo el marco . Lo hace desarrollando servicios y clases en torno a los propósitos de su aplicación , y utilizando esos servicios dentro de su aplicación, independientemente del marco. Debe dejar de pensar en un marco como algo que aprisiona su aplicación; un marco está ahí para ayudarlo, no para encerrarlo en una forma específica de desarrollo . Por lo tanto, agregar funciones (correctamente) no es un problema y no genera problemas negativos, a menos que haga algo muy incorrecto.

Sobre la pregunta 3

Un marco puede perjudicarte si eres víctima de sus métodos de acceso directo. Por ejemplo, Laravel tiene algunos métodos auxiliares sin espacio de nombres de nivel raíz que se parecen a los métodos PHP nativos. Por ejemplo, vea estos: Funciones de ayuda: todos parecen estar integrados en PHP, cuando en realidad no lo están.

Al usar un marco como Laravel, puede caer en la trampa de usar estos métodos dentro de sus servicios (que pueden estar diseñados independientemente de la aplicación y su propósito) porque están universalmente disponibles en todas partes, y cuando intenta exportar su servicio / class en otra aplicación, u otro marco más adelante, encontrará que ya no funciona porque depende de los métodos auxiliares del marco anterior.

Esto generalmente se puede evitar si no le importa este “bloqueo de proveedor” o si desarrolla cuidadosamente sus cosas para que no dependan de la funcionalidad interna del marco.


Para resumirlo todo, no piense en un marco como algo que lo encierra. Un marco es, en la mayoría de los casos, simplemente una forma de pasar de una solicitud a su aplicación, y luego de su aplicación a una respuesta. Desarrolle sus servicios como independientes del marco, y estará bien incluso si el marco que ha elegido desaparece de la faz de la Tierra al día siguiente.

También recomendaría el libro de Phil Sturgeon: Creación de API que no odiarás. Aquí está mi crítica: Creación de API que no odiarás: revisión

¡Buena suerte!

More Interesting

¿Qué hace para que su software o aplicación web tenga la menor cantidad de errores posible y sea confiable y estable?

¿Cuáles son los mejores marcos que debo consultar para mi aplicación web?

¿Cuándo debo usar la Aplicación de página única (SPA) y cuándo debo usar la Aplicación de página múltiple (MPA)?

¿Los usuarios habituales tienen miedo de los inicios de sesión sociales y más bien crean cuentas para pequeñas aplicaciones web?

¿Cuál es el mejor sitio y / o aplicación para iPhone para rastrear la colección de juegos / piezas LEGO de mi hijo?

Estoy buscando patrones de IU útiles que faciliten la creación de un objeto complejo o actividad de entidad / registro de cambios para un CRM. Las entidades incluyen un cliente potencial (cliente futuro o actual) con sus datos personales, direcciones de envío, pedidos, conversaciones por correo electrónico, teléfono y mensajes de texto, etc. ¿Cómo hago esto?

¿Cuáles son algunas buenas ideas para un bot web?

¿Existe un calendario web colaborativo para la planificación a largo plazo?

Rendimiento web: ¿la carga por debajo de 1 s es buena para un sitio web?

¿Qué tan complicado es crear funcionalidades de reconocimiento de imágenes personalizadas en mi aplicación web? ¿Algún estadio sobre costos y tiempo?

Cómo construir una plantilla web en mi sitio que otros usuarios puedan usar

¿Puede una startup tecnológica obtener fondos solo con una aplicación web antes de crear las aplicaciones móviles?

¿En qué se diferencia una aplicación web de una página web?

En LAMP, ¿cuáles son los beneficios y las desventajas de Foundation y Laravel vs. Bootstrap y Code Igniter?

¿Cuáles son los pros y los contras del diseño de dos paneles AJAX popularizado por la nueva interfaz de usuario de Twitter?