Framework que en español se traduce por marco de trabajo es todo un conjunto de herramientas, conceptos, prácticas y métodos de trabajo que nos permiten abordar una situación de la mejor manera posible, toda una plataforma.
Ahora ahondemos más en el ámbito del desarrollo de software, que es lo que más nos interesa: un framework viene a ser entonces un entorno integrado de funcionalidades para un lenguaje de programación específico, y con funcionalidades me refiero a librerías, métodos, artefactos, estructura de proyecto y organización del código con el cual nos está ofreciendo todo un marco de trabajo o plataforma propiamente dicha con la cual no tenemos que empezar un proyecto desde cero, sino que lo hacemos sobre una base bien cimentada de código y en algunos casos una arquitectura definida del proyecto sobre la cual desarrollaremos.
Dicho esto, podemos apreciar las ventajas que nos dan los frameworks, y considero que son las siguientes:
- Son robustos ya que han sido desarrollados bajo estándares de calidad de software y buenas prácticas.
- Ahorra tiempo en el desarrollo debido a que permite a los desarrolladores concentrarse en las reglas del negocio a alto nivel y funcionalidades core del mismo, y no pensando demasiado en la funcionalidad de bajo nivel como por ejemplo la de permanencia de datos, conexión a la base de datos, entre otras ya que éstas son manejadas por el framework en sí.
- Ayuda en la aplicación de buenas prácticas de desarrollo de software como el uso de patrones de diseño.
- Nos permite abordar proyectos más complejos o sofisticados.
- Te permite como desarrollador estar a la vanguardia del desarrollo al ser ampliamente requeridos en la industria del desarrollo.
Como todo en la vida, no todo son ventajas, también hay desventajas asocidas a ellos:
- Curva de aprendizaje, sin duda deberás dedicar tiempo a aprenderlo aunque no es tan difícil.
- Versiones en constante actualización, lo cual podría hacer que, si no tienes cuidado o no lees bien una documentación, tu proyecto quede sin funcionar después de una actualización.
- Código sin utilizar y más pesado.
Pero que esto no te desanime, porque las ventajas superan ampliamente a las desventajas, así que pa lante dev 😉.
Veamos ahora en la práctica: Cuando utilizamos un framework, ¿qué sucede realmente con nuestro proyecto? Lo que pasará es que se creará una estructura de carpetas que varía según el framework utilizado; por ejemplo en la siguiente imagen se muestra la estructura de carpetas que se crean cuando instalas el framework Angular:
Y en Visual Studio Code ese mismo proyecto se vería de la siguiente manera:
Ahora tenemos un mejor panorama de lo que usar un framework significa, hemos visto la teoría y ahora la práctica también, sin embargo hay muchos más frameworks en el mercado, para desarrollo de escritorio, web y móvil, los más populares y demandados por la industria (por eso te los recomiendo) son los siguientes:
- Spring MVC
- Angular
- Vue.js
- Express.js
- ASP.Net
- Laravel
- Symfony
- ASP.Net Core
- Django
- Ruby on rails
- Ionic
- Xamarin
- React native
- Flutter
No debemos confundir framework con librería, una librería es un conjunto de rutinas, o código con una finalidad en concreto que se integran a nuestro proyecto y aportan una funcionalidad, no altera ni la arquitectura ni estructura de nuestro proyecto, a diferencia del framework, aquí algunas:
- Lodash
- Moment.js
- Chart.js
- React (gran librería para front end, casi casi un framework)
- PHP mailer
Lo más recomendado para un desarrollador es primero aprender el lenguaje en sí y luego uno o dos frameworks asociados a este lenguaje, nunca al revés ya que el saber el lenguaje primero, te va a permitir tener una base sólida al momento de codear.
Hoy más que nunca es importante aprender frameworks, porque prácticamente toda la industria lo pide, y debemos estar a la altura de ello, date un tiempo y apréndelos, pero no exageres, especialízate en uno o dos y te irá genial 😎.
Si te gustó la info, comparte esta entrada así muchos más devs pueden beneficiarse 😎
Un comentario en «¿Qué son los frameworks, valen la pena?»