¿Qué es este curso?

El curso de diseño de software avanzado con C# es un programa de 12 semanas con el que mejorarás tus habilidades de diseño de software y aprenderás a hacer código más mantenible y con menos bugs, y lo harás online, a tu ritmo e integrando los conceptos en un proyecto realista.

Para quién es este curso

Desarrolladores de software, con un mínimo de experiencia profesional, que:

  • Buscan dar un salto de calidad en el código que escriben.
  • Aspiran a aportar el máximo valor posible con su trabajo.
  • Están comprometidos en su desarrollo profesional y la mejora continua.

Qué vas a aprender

  • Fundamentos de diseño evolutivo de software y mentalidad de software crafter.

  • Una forma de programar adaptada a explotar el potencial de la IA, las herramientas modernas y capaz de adaptarse al cambio, con Test-driven development y Refactoring.

  • Cómo producir diseños mantenibles desde el principio y hacerlos crecer incrementalmente.

  • Conceptos clave de programación orientada a objetos y programación funcional, y cómo utilizarlos.

  • Cómo tomar decisiones de diseño en base a anti-patrones y balancear propiedades del código, en lugar de principios dogmáticos.

  • Cómo evitar bugs creando diseños resilientes, que protejan las reglas de negocio más importantes por diseño.

  • Patrones de diseño y sus usos en la actualidad, y cómo aplicarlos en el momento más adecuado.

  • Cómo integrar tus diseños con sistemas externos usando dobles de test.

  • Cómo documentar y comunicar el diseño.

¿Cómo lo vas a aprender?

  • 12 semanas

    Plan de 12 semanas en el que aprenderás todos los conceptos de diseño en el orden más eficiente.

  • Píldoras de teoría

    Estudiarás cada concepto con píldoras de teoría en videos breves de menos de 10 minutos.

  • Proyecto integrador

    Desarrollarás un proyecto del mundo real, de principio a fin, en el que aplicarás progresivamente lo aprendido.

  • Mentorías 1:1

    Tendrás apoyo adicional en 2 sesiones de mentoría privadas 1:1 con el profesor del curso para resolver todas tus dudas

  • Sesiones de reimpulso

    Participarás en sesiones semanales en grupo de reimpulso y resolución de dudas.

  • Comunidad de estudiantes

    Participarás en una comunidad con el resto de alumnos y profesores, donde podrás resolver cualquier duda.

  • Acceso de por vida

    Tendrás acceso para siempre a todos los materiales del curso, así como a las nuevas actualizaciones del mismo.

Temario del curso

  • 1

    Filosofía del diseño evolutivo

    • Mentalidad de software crafter

    • Aportar valor, hábitos y mejora continua

  • 2

    Workflow de diseño: TDD y refactoring

    • Test-driven development

    • Empezar por un entero primitivo

    • Desarrollo incremental: grados de libertad

    • Refactoring continuo

  • 3

    Fundamentos de diseño

    • Funciones puras, side effects y los tres niveles de aislamiento

    • Inmutabilidad: Value objects

    • Encapsulación y protección de invariantes: Entidades y agregados

    • Servicios

  • 4

    Code whispering

    • Tomar decisiones de diseño basadas en el código

    • Code smells

    • Bloaters

    • Couplers

    • Change preventers

    • Object orientation abusers

  • 5

    Patrones de diseño

    • Refactoring to patterns

    • Patrones Gang of Four y su uso en la actualidad

    • Patrones funcionales: Mónadas y funciones de orden superior

  • 6

    Más allá de SOLID

    • Pensando en propiedades

    • Legibilidad

    • Propósito único

    • Código idiomático

    • Componibilidad

    • Especificidad en el dominio

    • Predictibilidad

    • Cohesión y acoplamiento

  • 7

    Diseño contra interfaces

    • Diseño con dobles de test

  • 8

    Gestión de errores

    • Gestión de errores funcional

    • Opcionalidad y gestión de valores nulos

  • 9

    Documentación del diseño

    • Diagramas UML

    • Documentación asistida con IA

  • 10

    Potenciación del desarrollo con IA

    • Generación de código con LLMs (ChatGPT, Copilot)

    • Herramientas de refactoring (IntelliJ)

    • Análisis de código con IA

  • 11

    Proyecto integrador: Micro-framework web

    • Práctica: Servidor HTTP

    • Práctica: Kernel y Router

    • Práctica: Contenedor de dependencias

    • Práctica: Renderizador de plantillas HTML

    • Práctica: Middleware de autenticación

    • Práctica: Event Dispatcher

Proyecto integrador: micro-framework web

Desarrollarás tu propio micro-framework web, similar a Spring Boot, ASP.NET Core o Symfony.

Implementarás un framework en el que desarrollarás los siguientes componentes, desde cero:

  • Servidor web HTTP
  • Enrutador las peticiones HTTP a los controladores de usuario
  • Contenedor de inyección de dependencias
  • Renderizador de plantillas HTML
  • Middleware de autenticación
  • Event dispatcher
  • ¡… y más!


Desarrollarás este framework de principio a fin con TDD, aplicando todos los conceptos, patrones y técnicas que verás en el curso.

El desarrollo del proyecto estará disponible íntegramente en video, para que puedas elegir entre seguir el paso a paso o desarrollarlo tú mismo.

Profesor

Technical Coach

Pedro Pardal

Software engineer y tech lead con +12 años de experiencia construyendo aplicaciones web escalables en el cloud, y liderando equipos multidisciplinares usando metodologías ágiles. Inspirado por los valores de Software Craftsmanship y prácticas de Extreme Programming y DevOps, poniendo especial énfasis en la entrega temprana de valor, comunicación transparente con el cliente y excelencia técnica.

Qué dice nuestro alumnado

Victoria Kovaleva - Junior Software Engineer

Cuando hablo con personas con 10 o 20 años experiencia, me dicen que ojalá ellos hubieran podido aprender al principio todo lo que yo sé ahora

David Lorenzo - Software Engineer

Aprender con Pedro fue un punto de inflexión en mi carrera profesional

Samuel Álvarez - Software Engineer @ Voxel Group

Lo que tú enseñas es una forma de desarrollar software, son muchas piezas que se juntan para formar un puzzle.

Meri Herrera - Software Engineer @ Voxel Group

"El training de legacy code de Exeal me dejó un montón de tips útiles que vienen muy bien para aplicar en el día a día. Además de aprender y reforzar estrategias existentes para que el código legacy sea un poco más amigable y no tan temido. ¡Lo súper recomiendo!"

Hemos formado a los developers de estas empresas

Kairos Digital Solutions
Mango
Zooplus
Voxel
Stradivarius
Domingo Alonso Group
Wolters Kluwer
Z1
DevoluIVA

Reserva tu plaza

Disponible próximamente. ¡Reserva tu plaza ya para asegurarla!