You want to learn with really good examples why all inheritance is bad, and why you should think twice if you want to inherit in places or if you jump on the ship with the new tool/library/framework that forces you to inherit from it's base class. Watch the first 30 minutes https://vimeo.com/163860086 (exactly until 30:00).
Tagged with #oop
If I tell you who gave the answer you will run off and read it, so I don't and expect you to be interested enough in following the link to the answer.
Wikipedia says about cohesion, it refers to the degree to which the elements of a module belong together.
And about coupling it says how closely connected two routines or modules are.
Pharo - object-oriented programming language and a powerful environment
Another pearl by @KevlinHenney in his Functional Programming You Already Know
is his explaination of why we actually should leave out prefixes to our functions, such as
Links about naming things
I was about to write a "Handler" class. But I remembered that the "er" classes are not so good.
Refactor to functional