Ports and Adapters Pattern • Test-Driven Design Development (Practices) • Clean Architecture Style • Principles, Patterns and Practices. • Walkthrough an Use Case • Q&A @ivanpaulovich
on low-level modules. Both should depend on abstractions. • Abstractions should not depend on details. • Details should depend on abstractions. @ivanpaulovich
Dependency Inversion Principle Test-Driven Development Object-Oriented Design Principles Use Cases as Central Organizing Structure Pluggable User Interface @ivanpaulovich
Release Reuse Equivalency Principle. • The Common Closure Principle. • The Common Reuse Principle. • Coupling Packages Principles: • The Acyclic Dependencies Principle. • The Stable Dependencies Principle. • The Stable Abstractions Principle.
Presenters D evices W eb UI DB External Interfaces @ivanpaulovich •Abstractness increases with stability. •Modules depend in the direction of stability. •Classes that change together are packaged together.
and the use cases are the central organizing structure. • Use cases implementation are guided by tests. • The User Interface and secondary actors are designed to fulfil the core needs. • Defer decisions by implementing the simplest component first. 16 @ivanpaulovich