blob: 432e4306004131cf61213c50d92b824d9a64c368 (
plain) (
tree)
|
|
# misc. axioms of big O
- Arithmetic operations are constant
- Variable assignment is constant
- Accessing element in an array (by index) or object (by key) is constant
- In a loop, the complexity is the length of the loop times the complexity of whatever happens inside of the loop
# SOLID
- Single responsibility principle
- a class should only have 1 reason to change
- *separation of concerns* -- different classes handling different, independent tasks/problems
- Open-closed principle
- classes should be open for extension but closed for modification
- Liskove substitution principle
- you should be able to substitute a base type of a subtype
- Interface segregation principle
- don't put too much into an interface; split into seperate interfaces
- Dependency inversion principle
- high-level modules should no depend on low-level ones; use abstraction
|