Aprende a diseñar y desarrollar software de calidad en el mundo real con Java
Curso online avanzado de diseño de software con Java. Comienza el 23 de Septiembre de 2024.
Desarrolladores de software, con un mínimo de experiencia profesional, que:
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.
Mentalidad de software crafter
Aportar valor, hábitos y mejora continua
Test-driven development
Empezar por un entero primitivo
Desarrollo incremental: grados de libertad
Refactoring continuo
Funciones puras, side effects y los tres niveles de aislamiento
Inmutabilidad: Value objects
Encapsulación y protección de invariantes: Entidades y agregados
Servicios
Tomar decisiones de diseño basadas en el código
Code smells
Bloaters
Couplers
Change preventers
Object orientation abusers
Refactoring to patterns
Patrones Gang of Four y su uso en la actualidad
Patrones funcionales: Mónadas y funciones de orden superior
Pensando en propiedades
Legibilidad
Propósito único
Código idiomático
Componibilidad
Especificidad en el dominio
Predictibilidad
Cohesión y acoplamiento
Diseño con dobles de test
Gestión de errores funcional
Opcionalidad y gestión de valores nulos
Diagramas UML
Documentación asistida con IA
Generación de código con LLMs (ChatGPT, Copilot)
Herramientas de refactoring (IntelliJ)
Análisis de código con IA
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
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:
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.
Pedro Pardal
La próxima edición comienza el 23 de Septiembre de 2024. ¡Reserva tu plaza ya para asegurarla!
€597,00
Precio regular
€449,00
Early bird (hasta 23/09/2024)