I’ve just finished reading What every programmer should know about object oriented design. The first couple of sections are a bit useless really, but the 3rd section is very good.
I particularly liked the section on the difference types of connascence in software. There’s some basic information about it here if you fancy a brief overview of what it is about.
It’s a really good book, I recommend you read it! Should only take a day if you only read the 3rd section.