Naming Things

The Hardest Problem in Software Engineering

Naming is one of the most difficult and enduring challenges in software engineering, but few of us do it well. This practical and comprehensive book provides a set of principles, rules, and application guidelines for efficiently choosing good names in your code.

These skills can be used throughout your career, and they’re useful for every programming language, technical domain, and experience level. The book incorporates real-world examples to illustrate how to choose good names and avoid bad names.

Amazon Leanpub


The book includes:

  • Rules for choosing good names and avoiding bad names
  • Principles to help you remember the general qualities of good names
  • Real-world examples
  • Guidelines on the application of these rules and principles, including balancing tradeoffs, renaming best practices, and choosing domain-specific names
  • Tips on how to develop your naming skills throughout your career

Your code is for a human first and a computer second. Humans need good names.
— Martin Fowler
Programs must be written for people to read, and only incidentally for machines to execute.
— Harold Abelson & Gerald Jay Sussman
There are only two hard things in Computer Science: cache invalidation and naming things.
— Phil Karlton
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
— Martin Fowler