// Learning · 02
The rules of thumb that keep code changeable.
A module answers to one actor, so it has one reason to change.
Extend behaviour by adding code, not by editing what already works.
A subtype must keep every promise its base type makes.
Clients shouldn't depend on methods they don't use.
High-level policy owns the interface; details implement it.
Don't Repeat Yourself: each piece of knowledge lives in one place.
Keep It Simple, Stupid: prefer what a newcomer can read and change.
You Aren't Gonna Need It: build for today's requirements only.
Talk to your direct collaborators, not to their insides.
Build behaviour by combining objects, not by extending classes.