Wiki source code of Expressive Names

Version 1.1 by chrisby on 2023/11/17 21:51

Show last authors
1 *
2
3 Choose meaningful names.
4 * Names should be chosen as carefully as the name of his firstborn child.
5 * Implicity: It should be self-evident from reading the code how it works.
6 *
7
8 Choose names that are descriptive of the purpose.
9 * For example, a variables name should stand for one concept. Its better to have a variable unorderedNumbers, which is sorted and stored in orderedNumbers instead of saving both lists in the same variable numbers.
10 *
11
12 Avoid misinformation.
13 * For example, ambiguities, confusion with similar names or easily confused characters (l and 1, O and 0).
14 *
15
16 Make differences clear.
17 * Avoid very similar expressions.
18 * Blank words are redundant (a, an, the, info, data).
19 * Use pronounceable names. Programming is a social activity that people talk about with others.
20 *
21
22 Use searchable names.
23 * The length of a name should correspond to the size of its scope. For local counting loops, one letter is enough; if the variable is used in multiple places in the code, it needs a longer name.
24 *
25
26 Avoid encodings.
27 * There should be no references to the scope or type of the variable in the name.
28 *
29
30 Avoid mental mappings.
31 * The name of a variable should not have to be mentally translated into another. Clarity has absolute priority.
32 *
33
34 Class names
35 * Names of classes consist of nouns or substantivistic expressions.
36 *
37
38 Method names
39 * They consist of a verb or an expression with a verb. Accessors, mutators, and predicates should be named after their value and follow the JavaBean standard (prefixes: get, set, is, has).
40 * Overloaded constructors can lead to confusion, e.g. if a float is to be passed once and an int once. Constructors should be declared as private and functions should be used to create instances whose names highlight the difference.
41 * Avoid humorous names.
42 *
43
44 Choose one word per concept.
45 * "get" instead of "fetch" and "retrieve".
46 * No puns.
47 * Avoid ambiguities as in the word "add" (addition or adding).
48 *
49
50 Use names of the solution domain.
51 * Programmers will read your code, so use technical language.
52 *
53
54 Use names of the problem domain.
55 * If there are no terms from computer science. Then at least domain experts can refer to it.
56 *
57
58 Add meaningful context.
59 * Together with the names of other variables and methods, this context can be created.
60 *
61
62 Do not add superfluous context.
63 * Shorter names are better than longer ones, as long as they are clear. Names should be simple, but meaningful.
64 * Dare to rename things. Your colleagues should be grateful for improvements.