Software Craftsmanship es el corazón de este curso. A lo largo de este curso, tu equipo aprenderá sobre la mentalidad de Software Craftsmanship y cómo aplicarla dentro de la organización.
Escribir Clean Code no es fácil; y limpiar código existente todavía menos. Tu equipo debe asistir si necesita:
- Alinear la tecnología con los requerimientos del negocio
- Escribir código limpio que sea fácil de entender y mantener
- Mejorar sus competencias en Test-Driven Development (TDD): usando testing para diseñar y construir
El código limpio requiere un buen diseño. Tu equipo aprenderá:
- A comprender los principios de diseño que conducen a un código limpio
- A evitar la sobre-ingeniería y las grandes reescrituras mediante un diseño que evolucione gradualmente utilizando pruebas
Una vez que tu equipo domine estos principios podrá aplicarlos a código heredado. Esto les permitirá ganar confianza trabajando con legacy code.
La parte de diseño de software de esta serie de capacitación se centra al nivel de aplicaciones y microservicios utilizando los requisitos comerciales para impulsar el diseño.
Aplicaciones:
- estructura interna
- capas
- componentes
- mecanismo de entrega
- core domain
Microservicios:
- definir la responsabilidad de cada servicio
- cómo colaboran los servicios
- visibilidad interna / externa
Este curso está diseñado para equipos de desarrollo de software:
- familiarizados con un nivel mínimo de lenguaje orientado a objetos
- con competencias en Java o C#
- capaces de escribir y ejecutar pruebas unitarias utilizando un framework (como JUnit, NUnit, etc.)
- con un comprensión básica de los mock objects
Principios de:
- Test-Driven Development (TDD)
- Object-Oriented Design (OOD)
- Domain-Driven Design (DDD)
- Interaction-Driven Design (IDD)
Contenido:
- Ciclo de vida TDD y modelado de comportamientos
- Escritura de pruebas unitarias que expresan intención, no implementación
- Utilizando pruebas unitarias para conseguir un buen diseño
- Expressive code
- Probar y refactorizar código heredado
- Cómo estructurar proyectos para que expresen lo que hace la aplicación y de qué se trata
- Comprender las diferencias entre capas, hexágonos, características y componentes
- Identificación de servicios a partir de reglas comerciales
- Expresar diseño y arquitectura en código, pero manteniendo claridad en el dominio
- Comprender Impact Mapping como técnica y cómo se puede derivar una arquitectura de servicios a partir de ella
Se trata de un curso totalmente práctico, así que se requerirá que los equipos de desarrollo de software escriban mucho código.
Necesario:
- Tener disponible tu propio ordenador portátil
- Ser capaz de crear proyectos, construir código fuente y ejecutar casos de prueba en su entorno de desarrollo
- Tener un entorno de desarrollo que conste de lo siguiente:
- Lenguaje orientado a objetos
- Un framework the unit testing
- Una librería para hacer mocking
- Se recomienda un sistema de control de versiones distribuido como por ejemplo Github
Software craftsman, escritor, cofundador de Codurance y fundador de la London Software Craftsmanship Community (LSCC). Sandro ha estado programando desde muy joven, y comenzó su carrera profesional en 1996. Ha trabajado para startups, empresas de software , empresas de productos, empresas de consultoría internacional y bancos de inversión.
Durante su carrera, Sandro tuvo la oportunidad de trabajar en gran variedad de proyectos, con diferentes idiomas, tecnologías y en muchas industrias diferentes. Sandro tiene mucha experiencia en llevar la ideología de Software Craftsmanship y las prácticas de Programación Extrema a organizaciones de todos los tamaños. Sandro es reconocido internacionalmente por su trabajo en la evolución y difusión de Software Craftsmanship y con frecuencia es invitado como speaker en muchas conferencias en todo el mundo. Su aspiración profesional es elevar el nivel de la industria del software ayudando a los desarrolladores a mejorar y preocuparse más por su oficio.
Estos son algunos de nuestros clientes
Hablemos de cuáles son tus necesidades en training.
Nos encantaría saber más sobre tu negocio. Descubre cómo nuestros programas de training pueden impulsar tus equipos tecnológicos.