Wiki source code of Expressive Names
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.2 | 1 | 1. |
![]() |
1.1 | 2 | |
![]() |
1.2 | 3 | **Meaningful and Descriptive Names** |
4 | * Choose names carefully, as if naming a child. | ||
5 | * Names should reflect the code's purpose clearly. For example, use unorderedNumbers and orderedNumbers instead of a generic numbers. | ||
6 | 1. | ||
![]() |
1.1 | 7 | |
![]() |
1.2 | 8 | **Avoid Misinformation** |
9 | * Steer clear of ambiguous, easily confused names or characters (e.g., l vs. 1, O vs. 0). | ||
10 | 1. | ||
![]() |
1.1 | 11 | |
![]() |
1.2 | 12 | **Clarity in Differences** |
13 | * Distinguish names distinctly, avoiding similar expressions and redundant words (e.g., a, an, the, info, data). | ||
14 | 1. | ||
![]() |
1.1 | 15 | |
![]() |
1.2 | 16 | **Pronounceable and Searchable Names** |
17 | * Use names that are easy to pronounce and discuss. | ||
18 | * Name length should match its scope: short for local loops, longer for broader usage. | ||
19 | 1. | ||
![]() |
1.1 | 20 | |
![]() |
1.2 | 21 | **No Encodings or Mental Mappings** |
22 | * Avoid including type or scope information in names. | ||
23 | * Names should be clear without requiring mental translation. | ||
24 | 1. | ||
![]() |
1.1 | 25 | |
![]() |
1.2 | 26 | **Naming Conventions for Classes and Methods** |
27 | * Class names: Use nouns or noun phrases. | ||
28 | * Method names: Use verbs or verb phrases, adhering to standards like JavaBean (get, set, is, has). Utilize descriptive function names instead of overloaded constructors. | ||
29 | 1. | ||
![]() |
1.1 | 30 | |
![]() |
1.2 | 31 | **Avoid Inappropriate Humor and Ambiguities** |
32 | * Refrain from humorous names. | ||
33 | * Choose one word per concept to maintain consistency (e.g., always use "get" instead of alternating with "fetch" or "retrieve"). | ||
34 | * Avoid puns and ambiguous terms (like "add" for addition or appending). | ||
35 | 1. | ||
![]() |
1.1 | 36 | |
![]() |
1.2 | 37 | **Domain-Specific Naming** |
38 | * Use technical terms (solution domain) for clarity among programmers. | ||
39 | * Use terms from the problem domain when no technical equivalents exist, aiding domain experts. | ||
40 | 1. | ||
![]() |
1.1 | 41 | |
![]() |
1.2 | 42 | **Context and Simplicity in Naming** |
43 | * Provide meaningful context through combined variable and method names. | ||
44 | * Avoid unnecessary context; opt for shorter, meaningful names. | ||
45 | * Be open to renaming for clarity and improvement. |