HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

Buenas prácticas y Clean Code

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

Skills que aprenderás

  • Clean Code

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

Curso de nivel intermedio orientado a desarrolladores con al menos 3 meses de experiencia en cualquier lenguaje que quieren escribir código que sus compañeros entiendan, puedan modificar y puedan testear sin tener que pedir explicaciones. Los ejercicios están en Python, pero los principios — code smells, naming, SRP, DRY, KISS, YAGNI, cohesión, acoplamiento — son independientes del lenguaje. El curso parte de código real con problemas concretos: funciones crípticas, duplicación, magic numbers, módulos sin propósito claro. A través de diagnóstico y refactorización guiada, el participante aprende a identificar qué tiene mal el código antes de tocarlo y a aplicar el cambio más adecuado con justificación explícita. Al finalizar, será capaz de configurar un flujo de calidad automatizado con linting y formateo que bloquee código problemático antes de que llegue a la rama compartida.

Al finalizar el curso, el participante será capaz de:

  • Diagnosticar code smells en código Python existente y priorizar qué refactorizar primero según la frecuencia de cambio y el riesgo de inconsistencia
  • Aplicar naming efectivo y escribir funciones con responsabilidad única que expresen su propósito sin necesidad de leer su implementación
  • Refactorizar código Python aplicando los principios DRY, KISS y YAGNI con justificación explícita del principio aplicado y el beneficio obtenido
  • Modularizar código Python reduciendo el acoplamiento e introduciendo inyección de dependencias para separar lógica de negocio de infraestructura
  • Integrar ruff, black y pre-commit en el flujo de trabajo Python para automatizar la detección de smells y garantizar formato consistente antes de cada commit
  1. Code smells y diagnóstico Qué es un code smell y por qué no es un bug; catálogo de smells más comunes en Python: Long Method, God Class, Duplicated Code, Magic Numbers, Meaningless Names; criterios de priorización de refactorización: frecuencia de cambio, riesgo de inconsistencia, coste de refactorizar; regla del Boy Scout aplicada pragmáticamente

  2. Naming efectivo y Principio de Responsabilidad Única (SRP) Nombres que revelan la intención: funciones con verbo + objeto, variables con sustantivos, booleanas con prefijo is_/has_/can_; convenciones de naming en Python (PEP 8); SRP en funciones: un único motivo para cambiar, señales de violación (nombre con "y/o", secciones separadas por comentarios, mezcla de niveles de abstracción); refactorización: extraer funciones con responsabilidad única

  3. DRY, KISS y YAGNI DRY (Don't Repeat Yourself): duplicación de conocimiento vs. duplicación de código, cómo extraer lógica común manteniendo la firma correcta; KISS (Keep It Simple, Stupid): preferir la solución más directa sobre la más elegante; YAGNI (You Aren't Gonna Need It): no implementar funcionalidad hasta que sea necesaria, coste del código especulativo; ejercicio integrador: refactorizar código que viola los tres principios con justificación explícita

  4. Cohesión, acoplamiento e inyección de dependencias Alta cohesión: módulos con propósito único, por qué utils.py es un smell de nombre; bajo acoplamiento: dependencias explícitas vs. dependencias ocultas; inyección de dependencias en Python sin framework: pasar dependencias por constructor en lugar de instanciarlas internamente; refactorización: reorganizar un módulo con baja cohesión en módulos especializados

  5. Linting, formateo y code review automatizado Diferencia entre linter y formateador: ruff (detección) vs. black (corrección de formato); configuración en pyproject.toml con coherencia de line-length; pre-commit: hooks que bloquean commits que no pasan los checks de calidad; code review efectivo: comentario con observación específica + impacto + alternativa concreta

  • Python ≥ 3.10 instalado localmente
  • Editor de código (VS Code recomendado con las extensiones Pylance y Ruff)
  • Terminal con acceso a pip
  • Git instalado (para los ejercicios de pre-commit hooks en el bloque 5)
  • Conexión a internet para instalar paquetes vía pip (ruff, black, pre-commit)

No se requieren prerrequisitos formales. Se espera que el participante tenga al menos 3 meses de experiencia escribiendo código en cualquier lenguaje: sabe qué es una función, un módulo, una variable y ha trabajado con algún repositorio de código. No es necesario conocer Python previamente — los conceptos son transferibles y la sintaxis de los ejercicios se introduce durante el curso.