573 words
3 minutes
1.13 Qué Es Un Framework

1. ¿Qué es un Framework?#

Un framework es un conjunto de librerías y herramientas que resuelve problemas comunes en el desarrollo de software. Se le llama de “baterías incluidas” porque ya trae integradas muchas funciones listas para usar.

Ejemplo cotidiano: Para ir a la escuela puedes usar diferentes medios: autobús (cómodo pero lento), moto (rápida pero incómoda), coche (rápido y cómodo, pero depende del tráfico). Todos resuelven el mismo problema (llegar a la escuela) con ventajas y desventajas. Lo mismo pasa con los frameworks: todos resuelven problemas comunes, pero cada uno lo hace de manera distinta.


2. Funciones principales de un Framework#

Además de librerías, un framework incluye buenas prácticas y patrones de diseño, como:

  • Patrones de diseño: estructuras probadas que se pueden replicar en distintos proyectos (ej. MVC).
  • ORM (Object-Relational Mapping): manejo automático de bases de datos.
  • Control de versiones de la base de datos: migraciones organizadas.
  • Pruebas integradas: facilitar test unitarios y de integración.
  • Esquemas de despliegue: automatizar instalación y actualización.
  • Seguridad integrada: validación contra inyección de código y manejo de sesiones.

Así, el programador puede enfocarse en resolver la lógica del negocio en lugar de reinventar la rueda.


3. Riesgos y precauciones con Frameworks y Librerías#

Aunque los frameworks facilitan mucho, también representan riesgos:

  • Dependencia excesiva: usar demasiadas librerías externas puede ser peligroso.
  • NPM (Node Package Manager): miles de paquetes, pero no todos están auditados → riesgo de malware (ej. gusanos que consumen recursos o roban credenciales).
  • Plugins de terceros: a menudo carecen de auditoría y pueden abrir vulnerabilidades.

Ejemplo: en un profiling (monitoreo del sistema) puedes detectar conexiones sospechosas creadas por una librería maliciosa.


4. Buenas prácticas con Frameworks#

  • Usar pocas librerías externas y preferir las más confiables.
  • Mantener un set reducido de librerías reutilizable entre proyectos (ej. 10 bien elegidas en lugar de 200).
  • Aplicar profiling para revisar el comportamiento del sistema (uso de CPU, conexiones, telemetría).
  • Revisar repositorios oficiales y vulnerabilidades conocidas (CVE) antes de instalar librerías o plugins.
  • Entender que un framework es clave: facilita mucho, pero también puede ser un punto de ataque.

5. Relación Framework ↔ Lenguaje#

El framework depende directamente del lenguaje de programación:

  • Java → Spring Boot.
  • Python → Django, Flask.
  • Ruby → Rails.
  • JavaScript → Express, Angular, React.
  • PHP → Laravel.
  • Rust → Actix, Rocket.

Elegir un framework no es solo cuestión de moda, sino de necesidad del proyecto, soporte de la comunidad y características del lenguaje.


6. Sistemas y Procesos#

Un sistema de software solo debe automatizar procesos que ya existen y están bien definidos.

  • Ejemplo: En las gasolineras del SAT, las especificaciones vienen dadas por procesos legales y aduanales.
  • Si no existe un proceso claro, no se debe intentar resolverlo con software: primero se define el proceso, luego se automatiza.

7. Glosario#

  • Framework: Conjunto de librerías y buenas prácticas para facilitar el desarrollo.
  • Baterías incluidas: Filosofía de frameworks que ya integran la mayoría de las herramientas necesarias.
  • Patrón de diseño: Solución probada para un problema recurrente de arquitectura de software (ej. MVC).
  • ORM (Object-Relational Mapping): Herramienta que traduce objetos del lenguaje en tablas de base de datos.
  • Profiling: Medición del rendimiento y comportamiento de un sistema en ejecución.
  • Telemetría: Registro y monitoreo de métricas de un sistema en tiempo real.
  • NPM: Gestor de paquetes de Node.js con miles de librerías disponibles (con riesgos de seguridad).
  • CVE (Common Vulnerabilities and Exposures): Base de datos pública de vulnerabilidades conocidas.
  • Proceso: Conjunto de pasos definidos que un sistema puede automatizar.

Investigar y completar con:

Que es un framework, como funciona, que hace, que tener en cuenta, que hace, que no hace Para elegir el framework que queramos.

El framework va de la mano con el lenguaje, que resuelva la necesidad que tengamos, java, php, pearl, rust, elegir uno que sea adecuado.