14. PoLAPrinciple of Least Astonishment
Related to the concept of developer habitability. If you (and the other fellow
developers of your team) are astonished by some specific solution, please discuss
this with the author (or follow the Boy Scout Rule).
15. Composition Instead of
Inheritance(Yo-Yo problem)
Inheritance implicates a problem towards testing. Only with sophisticated Build-In-
Tests (and unit tests) inheritance is good to handle.
16. Information Hiding
Principle Modularize
Around Secrets
Guidance for class design above basic data hiding. Relates also to hiding of
methods and especially algorithms building the value of that class.
17. SoCSeparation of Concerns
Group related stuff on every level of hierarchy: Method, Class, Package,
Component, Subsystem, ...
18. YAGNIYou ain't gonna need it
Another "meta-argument" besides the principle of least astonishment, which is
usable to argue against overcomplicated or too abstract/generic programming.
19. LoDLaw of Demeter
Good metric to follow, if it comes to "chain reactions" while modifying classes.