Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Python — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Python

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a profesionales con experiencia sólida en Python que buscan dar el salto hacia el desarrollo de software de calidad producción: quienes ya dominan las bases del lenguaje y han trabajado con estructuras de datos, orientación a objetos y testing básico, pero necesitan incorporar criterios de arquitectura, rendimiento y operabilidad a su práctica diaria. A lo largo de ocho horas intensivas, los participantes aprenderán a diseñar sistemas modulares aplicando patrones de diseño reconocidos, a diagnosticar y eliminar cuellos de botella con herramientas de profiling, a elegir el modelo de concurrencia adecuado según la naturaleza de cada tarea, a construir pipelines de validación y despliegue automatizados, y a establecer sistemas de observabilidad y gestión de errores desacoplados de la lógica de negocio. Al finalizar, el participante será capaz de entregar código Python mantenible, medible y listo para entornos de integración continua, respaldado por una suite de tests que incluye pruebas de rendimiento con umbrales de aceptación definidos.

  1. Identificar los principios que distinguen una arquitectura modular de calidad producción y reconocer en qué contextos cada patrón de diseño estructural o de comportamiento aporta mayor valor frente a alternativas más simples.
  2. Describir el funcionamiento del modelo de datos avanzado de Python —descriptores, metaclases y protocolos estructurales— y argumentar con criterios técnicos cuándo su adopción está justificada.
  3. Perfilar el rendimiento de un programa Python con herramientas de profiling, reducir el tiempo de ejecución o el consumo de memoria en al menos un 30 % respecto a la versión original y documentar las decisiones tomadas.
  4. Seleccionar el modelo de concurrencia adecuado (threading, multiprocessing o asyncio) para un caso concreto, distinguiendo tareas I/O-bound de CPU-bound y validando la mejora con métricas objetivas.
  5. Diseñar un sistema de gestión de errores y observabilidad que integre logging estructurado, trazabilidad de excepciones y alertas configurables sin acoplar esa lógica al dominio de negocio.
  6. Automatizar un pipeline completo de validación y despliegue de un paquete Python —linting, testing, build y publicación— gestionando errores parciales y reintentos mediante scripts o herramientas CI/CD.
  7. Construir una suite de tests que combine pruebas unitarias, de integración y de carga para un módulo crítico, establecer umbrales de aceptación y ejecutarla de forma automática en un entorno de integración continua.
  8. Anticipar problemas de mantenibilidad en una base de código existente, aplicar técnicas de refactoring documentado —extracción de módulos, inversión de dependencias, eliminación de acoplamiento— y verificar que los tests preexistentes siguen pasando.

Bloque 1 · Arquitectura y modelo de datos avanzado El curso arranca con una revisión crítica de los principios que gobiernan una arquitectura Python modular orientada a la producción. Se analizan patrones de diseño estructurales y de comportamiento —Strategy, Decorator, Composite, Observer, entre otros— contrastándolos con alternativas descartadas para que el participante desarrolle criterio propio de elección. Dentro de este mismo bloque se estudia el modelo de datos interno de Python: descriptores, metaclases y protocolos estructurales (typing.Protocol). Se exploran los casos en que estas herramientas resuelven problemas reales de forma elegante y aquellos en que añaden complejidad innecesaria, fomentando una postura argumentada sobre su uso.

Bloque 2 · Rendimiento y concurrencia El segundo bloque aborda la medición y mejora del rendimiento. Se trabaja con cProfile y py-spy para localizar cuellos de botella, y se aplican técnicas de optimización —algorítmica, estructural y de bajo nivel— con el objetivo de lograr reducciones de al menos un 30 % en tiempo de ejecución o uso de memoria. A continuación se aborda la concurrencia desde un enfoque evaluativo: se caracteriza cada modelo (threading, multiprocessing, asyncio) en función del tipo de tarea, se presenta la distinción I/O-bound / CPU-bound como eje de decisión y se establecen métricas objetivas para validar que la solución elegida produce una mejora real y sostenible.

Bloque 3 · Observabilidad, gestión de errores y refactoring Este bloque enseña a instrumentar aplicaciones Python de forma profesional: logging estructurado con niveles y formatos coherentes, trazabilidad de excepciones entre capas del sistema y alertas configurables. Se enfatiza el principio de separación de responsabilidades para que la lógica de observabilidad no penetre en el dominio de negocio. La segunda parte del bloque se dedica al refactoring defensivo: identificar señales de deuda técnica —acoplamiento excesivo, módulos demasiado grandes, dependencias invertidas de forma incorrecta—, aplicar las transformaciones documentadas y confirmar mediante los tests existentes que el comportamiento externo no ha cambiado.

Bloque 4 · Automatización, CI/CD y testing de calidad El curso cierra con la puesta en marcha de pipelines de integración continua. Se diseña un flujo completo que cubre linting (ruff, mypy), ejecución de tests, empaquetado y publicación del artefacto, con manejo explícito de errores parciales y lógica de reintento. Sobre esa misma infraestructura se construye una suite de tests multicapa —unitarios, de integración y de carga— para un módulo crítico real, definiendo umbrales de aceptación medibles y asegurando que la suite se ejecuta de forma automática en cada push, cerrando así el ciclo de calidad continuo.

  • Python 3.11 o superior instalado localmente.
  • Entorno virtual funcional (venv o conda).
  • Paquetes: cProfile (stdlib), py-spy, ruff, mypy, pytest, pytest-cov, locust (o k6 vía CLI) y poetry o build + twine.
  • Acceso a una cuenta de GitHub o GitLab con capacidad de configurar pipelines de CI/CD (GitHub Actions o GitLab CI).
  • Editor con soporte Python: VS Code con extensión Pylance, o PyCharm Professional/Community.
  • Conexión a internet para la descarga de dependencias y la interacción con los entornos de CI.
  • Sistema operativo: Linux, macOS o Windows 10/11 con WSL2 (recomendado para compatibilidad con py-spy).

Para aprovechar este curso al máximo, el participante debe haber completado PYD02 o poseer conocimientos equivalentes al nivel Intermedio de Python: manejo fluido de orientación a objetos, comprensión de listas / generadores / decoradores, uso de pytest para testing básico, gestión de entornos virtuales y empaquetado elemental con pip o poetry. Se recomienda también familiaridad con la línea de comandos y haber trabajado en al menos un proyecto Python de tamaño mediano en entorno profesional o académico.