SOLID architecture and design
Architecture
- Any software system has an [[architecture]]
- There's no "the highest level of abstraction of a system"
- Architecture has a social role (communicative)
- [[DBMS]] and [[UI]] are just tools, strive to make them irrelevant.
Design
- Software design is about designing the individual modules or components
- What are the responsibilities, functions of module x? or class y?
- What can it do? what not?
Architecture and Design Patterns
- [[Architecture patterns]] are standard forms of relationships between components that are deemed to be significant.
- They can be split into - [[behavioral design patterns]], [[structural design patterns]] and [[creational design patterns]].