I've just released a free online book called Naming Things. It's a collection of experiences I've had with naming all kinds of things in code--classes, objects, methods, properties, and business concepts.
I've had the unique opportunity to work mainly on one piece of software for many years--I began developing DoneDone in 2008 and I've been deeply involved in its maturation for more than a decade.
DoneDone's codebase is something I look at nearly every day. To care for the same product for so long, it helps to actually love what you're working on. Naming things well is especially important to me because of this.
As Phil Karlton famously wrote:
There are only two hard things in Computer Science: cache invalidation and naming things.
In this book, I hope to show you a few of the surprising conundrums I've faced with naming and how I ultimately resolved (or did my best to resolve) them. This book is an honest and open discussion about a topic I think is underdiscussed in our industry. I do hope you enjoy it.