domingo, 8 de diciembre de 2019

Framework

Un framework es un conjunto de archivos y pautas que definen la estructura y metodología, sobre cómo hacer el desarrollo de un proyecto software. Se podría decir que es una guía o esquema que nos ayuda a programar de forma sencilla y rápida. 


Tiene como objetivo el desarrollo ágil de aplicaciones mediante la aportación de librerías y/o funcionalidades ya desarrolladas. Principalmente, nos permite centrarnos en el problema, en vez de preocuparnos por implementar funcionalidades que son de uso común en muchas aplicaciones. Generalmente los frameworks están basados en un lenguaje de programación, aunque no siempre es así.





Características

Un framework se caracteriza por incluir los bloques de construcción básicos de un programa y determinar el diseño de la estructura básica para el software desarrollado. Es importante destacar que el framework en sí mismo no es un programa completo, sino que será utilizado por los programadores sólo como un patrón de diseño.

El programador especifica un tipo particular de implementación, que posteriormente es controlado y utilizado por el framework. En general, los frameworks se desarrollan con el objetivo de reutilizar patrones de aplicación arquitectónica. Algunos ejemplos de aplicación son editores gráficos, sistemas de contabilidad o tiendas de Internet.

¿Para qué sirve un framework?

Para poder escribir código o desarrollar una aplicación de manera más sencilla. Permite una mejor organización y control en el código elaborado, así como una posible reutilización en el futuro. Debido a esto garantiza una mayor productividad que los métodos más convencionales y una minimización del coste al agilizar las horas de trabajo volcadas en el desarrollo. Por otra parte, su acción es algo que afecta también a los errores, minimizándolos considerablemente. En definitiva, brinda una ayuda general y más que considerable al programador y desarrollador, haciendo que sus labores sean mucho más sencillas. 

Algunas razones para utilizar un framework a la hora de programar:


👍 Evitar escribir código repetitivo

👍 Utilizar buenas prácticas
👍 Desarrollar más rápido 



En términos generales los frameworks se pueden dividir de la siguiente manera: 

  • Frameworks de aplicación 
  • Frameworks de dominio
  • Frameworks de clase
  • Frameworks de prueba 
  • Frameworks de componentes 
  • Frameworks de coordinación
  • Frameworks de web

¿Cómo saber qué framework usar?

Principalmente se debe tener muy claro cuáles son las características y necesidades del proyecto, sin embargo algunos factores importantes a considerar a la hora de escoger un framework son los siguientes: 

👤 Soporte de comunidad 

Es muy importante que el framework que se ha elegido tenga una comunidad activa y participativa, ya que de esta manera será más sencillo conseguir ayuda en los momentos difíciles y se podrá asegurar la obtención de consejos y soluciones cuando sean necesarios.


📝 Documentación 


La documentación de un framework debe estar actualizada y ser lo bastante amplia. Una herramienta bien documentada es mucho más fácil de utilizar y por consiguiente, existe una mayor probabilidad de que sea de ayuda con respecto a los inconvenientes o problemas que puedan surgir. 


🚀 Simplicidad y potencia 


Algunos frameworks son muy potentes pero difíciles de comprender. El código generado por el framework debe ser claro y limpio, sin tener que preocuparse por peculiaridades internas del mismo. 


🔁 Reutilización 


Es imprescindible que los elementos desarrollados puedan ser reutilizados en varios proyectos.


🔐 Seguridad


Es importante que el framework esté desarrollado tomando la seguridad como punto de partida, puesto que si es muy potente pero no es seguro no sirve de nada.


Ventajas y desventajas de utilizar un framework:

✔️ Estructura y organización del código predeterminado
✔️ Agilidad y rapidez en el desarrollo 
✔️ Reutilización del código. Evitar duplicidad del código
✔️ Buenas prácticas de desarrollo con el uso de patrones
✔️ Minimizar errores y mayor facilidad para solucionarlos 
✔️ Facilita el mantenimiento 
✔️ Menor coste en el desarrollo
✔️ Facilita la colaboración con otros desarrolladores 

Tiempo de aprendizaje
Versiones inestables 
Código sin utilizar 
❌ Elección del framework 

Un listado de los frameworks más populares en aplicaciones web según su lenguaje de programación:

Java Script: Angular, Ember, Vue, React
PHP: Lavarel, Codelgniter, Symfony
Java: Spring MVC, JSF, Struts
Python: Django

Pese a ser una librería, React suele considerarse como un framework debido a las herramientas con las que suele utilizarse. (por ejemplo: Redux) 
























29 comentarios:

  1. Según lo publicado los Frameworks proveen funcionalidades ya desarrolladas, entonces se puede decir que el framework y el CMS son similares? o como se diferencian?

    ResponderBorrar
    Respuestas
    1. Generalmente cuando se piensa en CMS y en frameworks es muy común que se presente esta duda. Sin embargo, cada una de estas herramientas cumple con funciones distintas y también pueden ser utilizadas para propósitos específicos, todo esto dependiendo del diseño y la experiencia que se le quiera brindar al usuario. Una gran diferencia entre ambas radica en el hecho de que para utilizar un framework es importante tener conocimientos de programación, mientras que para utilizar un CMS no es necesario. Anudado a esto tenemos que, al utilizar un framework se debe contar con suficiente tiempo para su desarrollo además de tener un buen presupuesto y con un CMS es todo lo contrario, ya que todo se realiza con muchísima rapidez y por consiguiente no se requiere de un gran presupuesto ya que su desarrollo no toma tanto tiempo.

      Borrar
  2. De acuerdo con lo colocado en su blog, el framework es la plantilla que puede utilizar un programador para ciertas partes de su código con la finalidad de obtener menos líneas de código redundantes que sean parte del programa pero que a su vez no requieren mucha inversión en cuestiones de tiempo para su desarrollo, siendo así un esquema para poder realizar un trabajo más eficaz sin la necesidad de programar escribiendo muchas líneas de código.

    ResponderBorrar
    Respuestas
    1. Exactamente!! Es un esquema a seguir en el desarrollo de un proyecto o de alguna aplicación, como bien dices podemos denominarlo como una especie de plantilla o patrón que indicará la forma en la que se organizará el código y también cómo los desarrolladores pueden estructurar de manera estándar la información como las librerías, ficheros, entre otros.

      Borrar
  3. ¿Se puede ir directamente a la utilización de un framework o se debe usar algún tipo de complemento previamente?

    ResponderBorrar
    Respuestas
    1. Sí! Lo más recomendable es tener buenas bases de programación, debido a que al dominar un lenguaje, se haría mucho más fácil utilizar herramientas como los frameworks. Por ejemplo, si visualizamos un vídeo tutorial sobre cómo utilizar Lavarel o Symfony, no estaríamos aprendiendo a programar con el lenguaje PHP, estaríamos aprendiendo a utilizar esos frameworks que no es lo mismo. En conclusión, siempre es bueno conocer las bases de las herramientas que vamos a utilizar, aunque sea muy por encima se necesitan algunas nociones de programación para poder comprender la sintaxis, lo cual nos permitiría tener una mayor soltura durante el desarrollo y obtener un mejor resultado final de nuestro proyecto.

      Borrar
  4. La implementación de un framework facilita enormemente la tarea del desarrollo de software, y a pesar que unas de las desventajas que listan aquí es invertir tiempo en aprenderlo, mas son las veces que ese tiempo es menor al tiempo de resolución de problemas en el código cuando no se usa un framework, esto es especialmente cierto en el desarrollo backend cuando se trabaja con bases de datos y autenticación.

    ResponderBorrar
    Respuestas
    1. En efecto. Como bien señalas. Y debo resaltar, el tiempo que se toma en aprender y familiarizar con nuevas herramientas, pasa a ser una diminuta desventaja cuando lo comparamos con los posibles inconvenientes que se nos puedan presentar al momento de desarrollar un código con una estructura base obsoleta o poco organizada. Un ejemplo, es lo tedioso que resulta ser la resolución de los distintos problemas en el desarrollo y formación del proyecto cuando no se cuenta con un patrón inicial. Después de todo, un conocimiento adquirido, es un conocimiento eterno.

      Borrar
  5. Evaluando las desventajas y ventajas presentadas, si se elige adecuadamente un framework que posea las caracteristicas necesarias para el proyecto a desarrollar, la única desventaja que se presenta es el tiempo que se toma en aprender su implementación. Sin embargo, es completamente gratificante, ya que una vez se tenga el conocimiento, el desarrollo de las aplicaciones será mucho más fluido y eficiente. Por lo que, en mi opnión, en caso de frameworks ya bien establecidos, es recomendable implementarlos cuando sea posible.

    ResponderBorrar
  6. ¿Cuál sería el motivo primordial para apostar por el uso de frameworks?

    ResponderBorrar
    Respuestas
    1. Existen muchos motivos que pueden ser considerados para impulsarnos a utilizar frameworks. Listando algunos de ellos, tendríamos que el código estaría organizado desde el primer momento y se tiene un mayor control sobre los archivos, lo que permite ubicarlos de forma rápida y además es de mucha utilidad cuando el software ha tenido diferentes desarrolladores, sumado a esto la mayoría de los frameworks están organizados por grandes comunidades, es decir, un gran conjunto de desarrolladores que brindan respaldo con respecto a cualquier problemática común de desarrollo de aplicaciones que pueda presentarse; también es importante destacar que el uso de frameworks no solo nos brinda beneficios a nivel técnico, sino que también a nivel de equipo, estos ayudan a fomentar el trabajo grupal, lo cual traerá como resultado la obtención de un mejor producto final.

      Borrar

  7. Los framerwork son una herramienta muy útil cuando estamos desarrollando una aplicación ya que nos sirve como una estructura base que permite agilizar todos los proceso que se van ha involucrar en dicho desarrollo. Son muy útiles ya que nos brindan un conjuntos de bibliotecas y componentes que nos servirán como una estructura base bien organizada. Como anterior mente mencionaron mis compañeros se necesita una inversión de tiempo para aprender a trabajar con esta herramienta, pero ya luego se vuelve una técnica fácil que permitirán el desarrollo de aplicaciones mas estructurales y utilizar todas las ventajas que nos brinda los framerwork.

    ResponderBorrar
  8. ¿En que se diferencian los diversos tipos de Frameworks que nombraron mas arriba?

    ResponderBorrar
    Respuestas
    1. Son tiempos interesantes en los que cada framework intenta aportar su grano de arena. Todos son únicos en cuanto en la manera en la que abordan el desarrollo, además cada uno en particular tiene sus pros y contras. Afortunadamente existen muchísimas opciones para elegir el que mejor se adapte a nuestras necesidades.

      Borrar
  9. Entre las desventajas mencionadas de los framework, encontramos Código sin usar y dificultad en la elección del framework, ¿es 100% necesario usar un framework o existe algún método alternativo para sustituirlo?

    ResponderBorrar
    Respuestas
    1. Es una elección a libre albedrío, sin embargo, para los desarrolladores es necesario conocer con qué herramientas cuentan para hacer un poco más sencillo su trabajo. Por ejemplo, PHP se ha convertido en el lenguaje más utilizado para desarrollar aplicaciones web. La mayor parte de los programadores, por no decir la totalidad, no programan desde cero con este lenguaje, sino que emplean frameworks como Symfony, Laravel, CodeIgniter o Zend, lo que les facilita enormemente el trabajo y les ahorra mucho tiempo de programación

      Borrar
  10. Aunque los framework son de gran ayuda al momento de desarrollar ya sea del lado del cliente(frontend) o del lado del servidor (backend), para poder sacarle el máximo provecho hay que conocer muy bien el lenguaje de programación en que esta basado, ya que su funcionamiento depende de ese lenguaje y la curva de aprendizaje del framework sera mucho mas corta.

    ResponderBorrar
  11. Existen framework para diversos lenguajes de programacion, como Django para Python. ¿Todos los lenguajes de programación cuentan con framework?

    ResponderBorrar
    Respuestas
    1. No necesariamente... Puesto que no todos los frameworks se basan en un lenguaje de programación, no obstante, en la actualidad los frameworks más populares son creados en función de un lenguaje particular y permiten un desarrollo a gran escala. Entre estos se tiene: Phoenix (Elixir), Meteor (JavaScript Nodejs), Ruby on Rails (Ruby), Django (Python), Flask (Python) y Spring Boot y Spring Cloud (Java).

      Borrar
  12. Podría decirse que es recomendable utilizar los frameworks ya que de esta manera hay menos probabilidades de caer en errores. Al leer un poco sobre el tema me llamo la atención que la utilización de los frameworks es casi del 100% ya que les permite a los desarrolladores ser más productivos, en el sentido de que hacen más proyectos con menos tiempo de trabajo, permitiéndoles obtener más ingresos.

    ResponderBorrar
  13. Bastante clara la información sobre los frameworks, pero me gustaría saber como entran en juego las buenas prácticas en los frameworks?

    ResponderBorrar


  14. Todos los patrones de desarrollo de los frameworks están basados en las buenas prácticas, puesto que estas contribuyen a evitar la repetición de código, además de simplificarlo y evitar tener que programar partes innecesarias

    ResponderBorrar
  15. ¿Se pueden utilizar varios frameworks a la vez?

    ResponderBorrar
  16. Sí, se pueden utilizar varios. Generalmente en la mayoría de las ocasiones para desarrollar la aplicación que necesitamos puede que no sea suficiente utilizar un único framework sino que se requiera de la utilización de varios, pero es importante señalar que cada framework generará su propio conjunto de objetos y esta situación a su vez conllevará a problemas, puesto que cada framework es totalmente independiente y gestiona su propio ciclo de vida de los objetos y este es un punto sumamente importante a considerar en el momento en el que se quiera utilizar varios a la vez.

    ResponderBorrar
  17. Ciertamente los framework tienen muchas bondades, entre las que se encuentra que facilita y agiliza el proceso de desarrollo de aplicaciones Web, permite reutilizar código ya existente y por ende el código resultante de nuestras aplicaciones utilizando un framework es mas claro y reutilizable por otros programadores. Pero aunque los beneficios que obtenemos de trabajar con un framework son superiores a sus inconvenientes, estos también existen y es que existe una curva de aprendizaje para cada framework y obtener el control de uno requiere tiempo, pero eso no implica que no sean una excelente opción con la que se pueden tener buenos resultados si se decide implementarlo.

    ResponderBorrar
  18. ¿Usarían framework para el desarrollo de su proyecto en áreas?

    ResponderBorrar
  19. Si , al determinar los requerimientos del proyecto procederemos a elegir el framework que mejor de adapte para el desarrollo de nuestro software.

    ResponderBorrar
  20. El framework permite a los desarrolladores realizar proyectos en menor tiempo, ya que hay menor riesgo a la hora de generar un error, además ayuda a simplificar y tener en el programa partes irrelevantes o innecesarias ya que evita la repetición en el código.

    ResponderBorrar
  21. Los frameworks van de la mano con los patrones de diseño, su metodologías las podemos aplicar de forma agil. Estos varian dependiendo del lenguaje que se usa, porque no es la misma codificación en un lenguaje y otro, pero la funcionalidad sera la misma, el uso de ellos es inevitable a la hora de programar hoy en día, incluso desarrolladores se vuelven quisquillosos con estos y su utilidad por encima de lenguaje que deben utilizar

    ResponderBorrar