432 words
2 minutes
1.16 Frameworks En Programación Web
Un framework es un conjunto de librerías y reglas que resuelven problemas comunes en el desarrollo de software. Puede incluir desde módulos pequeños (mini-frameworks) para cliente, vistas o estilos, hasta sistemas completos que integran bases de datos y servicios. Su objetivo es dar estructura, buenas prácticas y acelerar el desarrollo.
Problemas que resuelven
- Consistencia de datos: Ejemplo, en la universidad un número de control único evita duplicados; si se modifica, el framework maneja relaciones y migraciones para mantener integridad.
- Históricos y duplicados: Ejemplo, ventas con precios antiguos no deben alterarse si el precio cambia. Los frameworks permiten duplicar datos relevantes en tablas de registros (ventas, reportes) para mantener consistencia.
- Flexibilidad: Cambios de monedas o localización (ej. Ruby on Rails soporta internacionalización de manera ágil).
Independencia y escalabilidad
- Base de Datos independiente: La lógica del negocio se maneja en la aplicación, no en la DB. Así se puede migrar entre MySQL, MariaDB, PostgreSQL, etc.
- Redis: Usado como memoria caché para transacciones rápidas y alta disponibilidad.
- Tiempo real: Ejemplo, apps como Uber o Didi usan georreferencias en tiempo real con APIs y DB sincronizada. El framework facilita estas integraciones.
Buenas prácticas
- Migraciones: Insertan valores por defecto, manejan excepciones y permiten rollback.
- RBAC: Control de accesos con privilegios mínimos, asignando roles a usuarios.
- Bitácora y versionado: Saber quién modificó qué y con qué autorización (auditoría).
- Profiling: Evaluar librerías (uso de CPU, memoria, seguridad).
Ágil y Seguridad
- Documentar lo necesario: El framework genera automáticamente esquemas de DB, reduciendo la documentación manual.
- Alta disponibilidad: Evitar caídas y mantener el sistema siempre en línea.
- REST: Los frameworks modernos ya integran APIs REST (GET, POST, DELETE) para exponer servicios de forma segura.
- Pruebas y APIs públicas: Ejemplo, usar APIs de Amazon o Google para testear integración.
Herramientas y apoyo
- IDE con soporte: Facilita usar frameworks sin tener que navegar en árboles de archivos complicados.
- IA (ChatGPT, DeepSeek): Puede dar ideas de implementación, pero el diseño y resolución final lo hace el programador.
- Patrones de diseño: Los frameworks los aplican para evitar reinventar la rueda (ej. MVC, Singleton, Observer).
Glosario
- Framework: Estructura de librerías y herramientas que organiza y acelera el desarrollo.
- Mini-framework: Módulo pequeño enfocado en una tarea (ej. frontend, estilos).
- ORM (Object-Relational Mapping): Técnica para mapear objetos de la app con tablas de una base de datos.
- Migración: Proceso de actualizar automáticamente la estructura de una DB desde el framework.
- Rollback: Volver atrás cambios en la base de datos.
- RBAC (Role-Based Access Control): Control de acceso basado en roles.
- Redis: Motor en memoria para cacheo de datos y operaciones rápidas.
- Profiling: Técnica para medir el uso de recursos y detectar cuellos de botella.
- Alta disponibilidad: Capacidad de un sistema para estar siempre en línea y funcionando.
- REST (Representational State Transfer): Estilo de arquitectura que define cómo interactuar con recursos mediante HTTP.