Nivel medio ‐ nivel 3 - DacoDark/Roadmap-Learning GitHub Wiki
Desarrollar competencias técnicas avanzadas y metodológicas que permitan a los desarrolladores crear aplicaciones robustas, escalables y mantenibles, incorporando mejores prácticas de arquitectura, seguridad y calidad de software.
Al completar el nivel, serás capaz de:
- Diseñar arquitecturas de software escalables y mantenibles
- Implementar sistemas de seguridad robustos
- Gestionar bases de datos complejas con optimización
- Aplicar metodologías de testing y observabilidad
- Integrar inteligencia artificial en aplicaciones
Estructuras de datos que mejoran la velocidad de las consultas. Los índices actúan como "atajos" para encontrar información específica sin examinar toda la tabla, optimizando significativamente el rendimiento de las consultas.
Modelado avanzado de relaciones entre entidades, incluyendo relaciones muchos-a-muchos, herencia de tablas y estructuras jerárquicas que reflejan la complejidad del mundo real.
Soluciones reutilizables para problemas comunes en el diseño de software, Incluye patrones creacionales, estructurales y de comportamiento que mejoran la organización y mantenibilidad del código.
Principios para organizar el código en capas independientes, separando la lógica de negocio d elos detalles técnicos, facilitando el testing y la evolución del software
Estrategias y herramientas para llevar aplicaciones desde el desarrollo hasta producción, incluyendo contenerización, CI/CD y gestión de entornos.
Sistema de autenticación basado en tokens que permite la verificación segura de identidad entre cliente y servidor, especialmente útil en aplicaciones distribuidas y APIs.
Implementación de sistemas de control de acceso basado en roles (RBAC) que define permisos y restricciones según el tipo de usuario y sus responsabilidades.
Métricas que indican qué porcentaje del código está siendo probado por las pruebas automáticas, ayudando a identificar áreas no cubiertas y mejorar la calidad del testing.
Objetos simulados que imitan el comportamiento d ecomponentes reales durante las pruebas, permitiendo aislar y probar unidades de código de forma independiente
Registros detallados de eventos y errores que ocurren en la aplicación, fundamentales para el debugging, monitoreo y análisis de comportamiento en producción.
Plataformas y servicios especializados en monitoreo, alertas y análisis de rendimiento que proporcionan visibilidad completa del estado de las aplicaciones.
Indicadores cuantitativos sobre el rendimiento, uso y salud de la aplicación, incluyendo tiempo de respuesta, uso de recursos y patrones de tráfico.
Uso de IA para crear automáticamente documentación técnica, comentarios de código y guías de usuario, mejorando la productividad y consistencia.
Aplicación de IA para generar casos de prueba automáticamente, identificar escenarios borde y crear suites de testing más completos.
- Diseño de esquema relacional con claves foráneas y relaciones N:N
- Crear un sistema de cursos y estudiantes con tablas intermedias
- Creación y análisis de índices en SQL
- Comprar rendimiento de consultas con y sin índices (
EXPLAIN
oANALYZE
)
- Comprar rendimiento de consultas con y sin índices (
- Normalización de base de datos (1FN, 2FN, 3FN)
- Optimizar una base de datos mal diseñada eliminando redudancia
- Consultas complejas con
JOIN
, subconsultas yGROUP BY
- Generar reportes con KPIs desde relaciones múltiples.
- Aplicación del patrón Repositorio + Servicio en API REST
- Separar persistencia, lógica y controladores usando buenas prácticas
- Uso de patrón Singleton o Factory para instanciación controlada
- Crear servicio de logging o de conexión a base de datos
- Separación de capas en arquitectura limpia (Domain, Application, Infrastructura)
- Implementar un caso de uso en una API aplicando los principios de Clean Architecture
- Sistema de autenticación con JWT y roles de usuario
- Acceso diferenciado para admin, user, guest en endpoints.
- Middleware de autorización con verificación de token
- Interceptar y validar tokens en cada ruta protegida
- Renovación de tokens y expiración
- Implementar refresh tokens y lógica para mantener sesiones activas
- Test unitarios con cobertura completa
- Ejecutar test con
pytest --cov
,jest --coverage
,JUnit + Jacoco
- Ejecutar test con
- Uso de mocks para servicios externos (API o BD)
- Simular respuestas de terceros, conexión a base de datos o servicios internos.
- Pipeline de CI con ejecución automática de test
- Configurar Github Actions para correr test y coverage al hacer push
- Configuración de logging estructurado con niveles (INFO, DEBUG, ERROR)
- Logs que incluyen timestamps, usuario y endpoint afectado
- Exposición de métricas con Prometheus + Grafana o herramientas integradas.
- Agregar métricas básicas de tiempo de respuesta, errores, peticiones por ruta.
- Sistema de alerta con umbrales configurables
- Alerta por email, webhook o consola si hay demasiados errores o caídas.
- Generación automática de documentación con IA
- Documentar clases, endpoints o funciones automáticamente y revisarlas
- Generación de test desde descripcción de funciones
- Entregar una función a Copilot y dejar que genere casos posibles.
- Revisión asistida de código
- Usar IA o linters para sugerir mejoras semánticas y de estructura.
Sistema completo: API + BD optimizada + seguridad + testing + observabilidad
* API REST con autenticación JWT y roles
* Arquitectura limpia con capas bien separadas
* Base de datos relacional bien modelada, con índices
* Testing coverage >=90% y mocks para servicios externos
* Logs estructurados y métricas básicas
* IA usada para generar documentación o testeo
* Entregable en repositorio Git con CI/CD