@pauldigian
Senior developer with a focus on Golang.
Golang consultancy Golang training
I don't think I can teach you anything! But for the less experience reader, it may be worth to summarize our experience. Single Responsibility Principle, is almost universally accepted as good practise. What it is not widely accepted, it is what Single Responsibility a class should have. Imagine a class to manage logs. Its responsibilities should be to write content to a file, to manage a directory where the logs files are written and rotated, or to manage a single log file (along with creating the file, and writing to it.) And the more the code is subjected to different ideas of what it is important (from different developers) the more it is hard to distinguish what it is a Single Responsibility. Having too many responsibilities in the code, it is as dangerous as not having abstractions.