Chapter 4. Names

The creation of a good mental model is one of the key challenges in developing software. There are several tools people use to help with this:

  • Project dictionaries

  • Domain vocabularies, ontologies, languages

  • XP-style metaphors

How we name things is important. Good names perform several functions:

  • They provide a vocabulary for discussing our domain.

  • They communicate intent.

  • They support subtle expectations about how the system works.

  • They support each other in a system of names.

It's hard to pick good names, but it's worth the effort. Ward Cunningham describes using a thesaurus to get just the right sense (see

Some teams have coding standards and naming standards that affect how names are chosen. I generally ...

Get Refactoring Workbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.