11. Emergence - tuansondinh/clean_code GitHub Wiki
11.1 Getting Clean via Emergent Design
- 4 simple rules for good design, which makes easier to apply principles like SRP and DIP
"1. Runs all the tests
-
Contains no duplication
-
Expresses the intent of the programmer
-
Minimizes the number of classes and methods
The rules are given in order of importance." S.172
11.2 Simple Design Rule 1: Runs All the Test
- "A system that is comprehensively tested and passes all of its tests all of the time is a testable system." S.172
- "Systems that aren’t testable aren’t verifiable. Arguably, a system that cannot be verified should never be deployed."
- tests pushes us to design clean, so we can test easier
- use of SRP, DIP, dependency injection, interfaces and abstraction -> minimize coupling -> easy to test