- Architecture: description of system (structure, relationships, collaboration)
- Programming Paradigmas: imperative, functional, object-oriented
- Design Pattern: usually parts of the systems; generic solution design for a problem; an architecture uses many design patterns
- Programming Principles: SOLID, Law of Demeter, etc.; generic best practices
- Clean Code: lowest level, actual source code; e.g. code formatting, lines per functions;