Changes and Dependencies
Notes after watching the following video. Nice one.
Dependency management is an important factor for writing stable codes. Just a complex implementation does not always cause bad dependencies. Knowledges communicated among classes through message, variables and namings are the factor for adding dependency. As long as complicated or unstable implementations are hidden within the class, it may not cause large problems and could be left alone.
1. Exposing stable public APIs
2. Hiding private behaviors
3. Minimizing the codes unrelated to the class
4. Moving out the rest (unrelated and unstable ones)