Why dirty architecture
- requirements
- model the domains and culture
- quick and dirty
- later never arrives based off uncle bobs book heavy
- mix of paradigms causes issues
- solid principles
- You wouldn't release only part of a logging module
- don't break existing behavior
- but like things together
- no cycles
- you can measure your dependencies
- a component should be as abstract as it is stable
- Design vs Architecture
- The shape of a software system.
- the shape is the division of that system into components
- how components communicate with each other.
- minimize lifetime cost and maximize programmer productivity
- deployment
- development
- operation
- maintenance
- support use cases
- remember the importance of behaviors
- start with the behavior not the database
- operation
- development
- conways law
- deployment
- bring ops in at the beginning
- roll back plans
- leaves options open
- decoupled the components
- break coupling from database
- find your seams
- depend on interface
- break business rules out of the gui
- onion picture
- Entities (enterprise business rules)(most stable)
- use cases (application business rules)
- interface adapters
- frameworks and drivers (least stable)
- customer vs invoicing
- security?
- database is a detail.
speakerdeck.com/craigber