Naming Things

“There are only two hard things in Computer Science: cache invalidation and naming things”

Phil Karlton


When writing software, we often find ourselves needing to name things: files, classes, variables, GitHub repositories, Python packages, etc.  As noted above, doing this well is hard; a programmer can easily pick a name that solves the immediate problem, but many such well-intended choices can be confusing or misleading to other people coming from different contexts (or after some time has passed, even to the programmer who named it).  A comprehensive set of guidelines on how to name things well could fill an entire book, but here are some guidelines that are likely to be useful to developers at edX.