Key benefits of using CDD:
- Faster development: Separating development into components lets you build modular parts with narrowly-focused APIs.
- Simpler maintenance: When you need to modify or update a part of your application, you can extend or update the component instead of having to refactor larger parts of your application.
- Better reusability: Through the separation of concerns components can be reused and extended to build multiple application instead of having to rewrite them over and over again.
- Better TDD: When building modular components it becomes much easier to implement unit-tests to validate the focused functionality of each component.
- Shorter learning curves: When a developer has to dive into a new project, it’s much easier to learn and understand the structure of a defined component than dive into an entire application.
- Better modeling of the system: When a system is composed out of modular components, it’s easier to grasp, understand and operate on.