For experienced developers who want to get better at designing well-crafted solutions.
This training addresses design from the most micro level (via TDD) all the way up to micro services definition by analyzing business requirements. The mission is to learn how to design software that is responsive to changing requirements and new functionally, avoiding some of the pitfalls that lead to legacy code.
- Write tests focused on behavior instead of state.
- Emergent design through classicist TDD.
- SOLID principles.
- BAP – Balanced Abstraction Principle.
- Use TDD as a design tool with Outside-In TDD.
- Tell, Don’t Ask.
- Commands, Queries, and Open/Close Principle compliance.
- Principles of Domain Driven Design.
- IDD – Interaction Driven Design.
- Structure projects in a way that expresses what the application does and what it is about.
- Differences between layers, hexagons, features, and components.
- Modeling behavior using Outside-In Design.
- Identifying services from business rules.
- Express design and architecture in code, but keeping your domain clear
- Understanding Impact Mapping and how a services architecture can be derived from it.