Between different object-oriented design principles there are tensions and synergies.
A professional software developer should have an overall sense of all the forces at work in the code design when coding.
Ilias Bartolini developed a coding-dojo that a group of people can run multiple times to explore and develop a sense of the forces generated in the code by different design principles.
-
This is the repository with the code for the coding-dojo.
-
These are the instructions, the material and the facilitator’s guide
-
The group can document the tensions and the synergies experienced in the sessions of the coding-dojo, this is the template
-
This is an example of a graphical representation
In this repo you find small code examples, each showing a tension or a synergy between two object-oriented design principles.
If you have more examples, please share them with a pull request.
Thanks to Ilias Bartolini for creating a coding-dojo that explores this topic and inspired these code samples.
Thanks to Daniel Tsadok for the porting of the examples to Ruby.
Thanks to Peter Oxenham for the porting of the examples to Java.
Thanks to Jonathan Reyes for the porting of the examples to JavaScript.