This will be a short blog post. The purpose is to introduce a code kata (coding exercise) that is designed to reinforce the Single Responsibility Principle. I am planning on releasing a series of this type of post that will cover many other aspects of software design principles and patterns.
The Single Responsibility Principle is probably the most intuitive of Uncle Bob’s SOLID principles, but there is some nuance to it. It is not always easy to define separate responsibilities. And even when the responsibilities are defined, there will be tradeoffs between separating the responsibilities and keeping the code intuitive.
So without further ado, you can find the code for this kata on github.