top react framework best javascript frameworks toolkit

javascript - framework - react



¿Cuál es la principal diferencia entre un marco y un conjunto de herramientas? (3)

Citando a Martin Folwer en su artículo sobre Inversión de control :

La inversión de control es una parte clave de lo que hace que un marco sea diferente a una biblioteca. Una biblioteca es esencialmente un conjunto de funciones a las que puedes llamar , en estos días generalmente organizadas en clases. Cada llamada hace algún trabajo y devuelve el control al cliente.

Un marco incorpora un diseño abstracto, con más comportamiento incorporado. Para usarlo, necesita insertar su comportamiento en varios lugares del marco, ya sea mediante subclases o mediante el complemento de sus propias clases. El código del marco luego llama a su código en estos puntos .

En resumen, la gran diferencia es que su código llama a una biblioteca mientras que un marco llama a su código.

Un marco le permite abstraer el código genérico, pero no de manera completa (Ej .: abstraer una conexión de red, pero no lo que realmente hace con los datos), y no resuelve ningún requisito común en particular, mientras que un kit de herramientas tiene soluciones a los genéricos problemas (Ej: widget de cuadro de diálogo)?

Ejemplo del mundo real: Prototype es un "marco", pero Dojo es un "conjunto de herramientas".

Entonces, mi pregunta es, ¿cuál es el criterio para llamar a algo un marco vs llamarlo un conjunto de herramientas?


En mi libro, un marco proporciona una estructura y alienta o requiere que se use de cierta manera. Esto puede ser bueno si el desarrollador quiere hacer las cosas a la manera del marco, ya que para muchos es más fácil que sea automático, pero puede ser malo si el desarrollador quiere desviarse de la intención del marco.

Un kit de herramientas, por otro lado, proporciona varias herramientas que se pueden usar juntas o por separado. Es más flexible pero requiere más esfuerzo por parte del programador.


Framework aplica un patrón de diseño en el desarrollador y proporciona algunas herramientas para la generación de código. Esto encaja bien con mi primera oración, ya que genera código en un cierto estilo / patrón.
La biblioteca le da la funcionalidad para que la use como desee. Como las funciones stdio de C, Console of C #, las funciones "incorporadas" de PHP, etc.
Puedes considerar una biblioteca como una especie de API