Framework: ¿qué es y para qué sirve esta herramienta?


¿Qué es un framework?
Seguro que al principio de tus estudios te has preguntado: "¿No hay una manera más fácil de hacer esto en mi proyecto?" mientras escribías líneas y líneas de código para obtener algún comportamiento, o incluso repitiendo códigos en las estructuras y agregando dependencias para desarrollar alguna funcionalidad. Es en este momento que nos encontramos con algo llamado framework.
El framework no es más que una herramienta que te ayudará a tener el único objetivo de centrarte en desarrollar el proyecto, no en detalles de configuración.
Pensemos que un frame representa la estructura de una casa, en la que solo hay paredes de ladrillo levantadas o incluso un solo carro con su carrocería, como vemos en las fábricas. Estas estructuras están a la espera del desarrollo (work), que en el ejemplo de la casa, correspondería a la elección de masilla que se colocará en las paredes, los colores de las pinturas, los tipos de pisos. En el caso del automóvil, si se colocarán asientos de tela o cuero, cuál será el color del panel, vidrios oscuros o claros y otros componentes.
Por lo tanto, el framework utiliza la práctica de evitar que tengamos que hacer tareas repetitivas, automatizando parte del trabajo. Pensando en una situación de desarrollo, si necesitamos crear un formulario de registro de usuario, siempre requerirá algún tipo de validación como correo electrónico y contraseña. El framework ya tendrá esa validación lista para ser utilizada.
Una voz puede haber surgido en tu mente diciendo: "Pero puedo optar por no hacer la validación, o por una validación específica". ¡Es cierto! Además de lo que ya proporciona el framework ya proporciona, nada te impide personalizar tu propia validación.
Volviendo a los ejemplos de la casa y el automóvil mencionados anteriormente, podemos pintar la pared de la casa en el color que creamos para que se vea mejor en lugar de usar el blanco, usado como estándar. En el caso del automóvil, le puedo poner un panel rojo en lugar del negro que viene de fábrica, como en la mayoría de los automóviles.
¿Cuáles son las ventajas de utilizar frameworks?
Es interesante abordar estos factores positivos, ya que los usamos muchas veces pero aún no sabemos exactamente dónde está la ventaja de esta herramienta. Vamos a ellos:
- Sin dudas, cuando usamos frameworks podemos agilizar nuestro trabajo, ya que nuestros esfuerzos se centran en el desarrollo, en lugar de preocuparnos tanto por los detalles de configuraciones y los estándares de proyecto.
- Las comunidades de programadores son directamente responsables del desarrollo de estos frameworks. Por eso, se vuelven más seguros y con cierto patrón de código. Debido a que se trata de un trabajo colaborativo, cada vez se implementan más soluciones a la herramienta.
- Con los frameworks, tenemos por defecto un código más limpio, lo que garantiza una mayor claridad de comprensión en todo lo que se implementa en la herramienta, lo que facilita nuestro trabajo y el de las demás personas que trabajan en el proyecto.
¿Existen desventajas?
Algunos desarrolladores señalan aspectos negativos que pueden surgir. Estos son:
- Problemas de configuración, que requieren tiempo para el mantenimiento. Tomando Spring como ejemplo, había un problema común al usar MVC, por lo que teníamos que descargar y declarar las dependencias, el módulo de inyección de dependencias, las dependencias de los módulos, usar Spring Validator para la validación de formularios, configurar la visualización con JSP, Velocity o Thymeleaf. Es decir, tendríamos que pasar por todos estos pasos para tener configurado Spring MVC.
Cuando trabajamos con dependencias, que son funcionalidades que ya están en la lista, debemos tener en cuenta algunos aspectos:
- No podemos ignorar que el objeto generador de las dependencias no está en el código del proyecto, sino que es abstracto;
- Puede ser una dificultad si no podemos proporcionar las dependencias directamente en el propio código de prueba;
- El framework primero resuelve todas las dependencias antes de cargar la aplicación, lo que consume cierto tiempo;
- A medida que se insertan las dependencias en el proyecto, se descargan muchas configuraciones innecesarias.
¿Qué frameworks se utilizan en los lenguajes?
Pensando en ahorrar tiempo y calidad de código, a continuación se muestran los lenguajes de programación con algunos de sus frameworks más conocidos:
Javascript:
- Angular
- React Js (Aunque hay cierta controversia dentro de la comunidad, algunos dicen que es una biblioteca y otros afirman que es un framework).
CSS:
Java:
Python:
- Pandas
Agile:
- Scrum: incluso en la metodología ágil, tenemos Scrum que se considera un framework, ya que facilita el trabajo de un equipo en la ejecución de tareas durante determinados periodos. **
¿Cómo sumergirse en los frameworks?
Antes de cualquier inmersión, debemos poner nuestros "pies en el agua". Es obligatorio saber que cualquier uso de un framework requiere conocimientos previos en cualquier lenguaje, incluso si es solo para saber para qué se usa.
Muchas veces, cuando estás empezando a aprender, cometes el error de comenzar a estudiar frameworks sin tener una base sólida consolidada. Si que estás pensando en algo como: "¿Necesito ser un experto en el lenguaje X o Y para estudiar un framework? ¿Me llevará mucho tiempo?". La respuesta es "¡No!". Sin embargo, tener una base en la que te sientas cómodo hará que tu crecimiento en el desarrollo de frameworks sea fluido y no tengas que volver constantemente al aprendizaje básico para aclarar puntos simples. Siempre será necesario recordar, pero que tu crecimiento sea constante y sin obstáculos en esta trayectoria!
Para "mojarse los pies" antes de sumergirse en los framewors, consulte estas formaciones:

Jeniffer Bittencourt
¡Hola, gente! Soy Jeniffer, tengo 29 años, soy parte del Scuba Team y comparto contenido sobre transición de carrera y tecnología en instagram y dev.to (@jeniblo_dev). Estoy acá para ayudar a resolver las dudas que surjan durante los cursos y para aprender junto. ¡Buenos estudios!
Traducido para Alura Latam por Mariana Costa.