Choose variable, function, and struct names that clearly communicate their purpose and content while considering their surrounding context. Avoid generic names like `x`, `normal`, or `data` that provide no semantic meaning. When naming within a specific scope or module, avoid redundant prefixes that repeat the context.
Choose variable, function, and struct names that clearly communicate their purpose and content while considering their surrounding context. Avoid generic names like x
, normal
, or data
that provide no semantic meaning. When naming within a specific scope or module, avoid redundant prefixes that repeat the context.
Bad examples:
// Generic, meaningless names
let x = error_result;
let normal = should_use_standard_input;
let first_line = column_count; // Misleading content
// Redundant context
struct WindowConfig {
pub window_level: WindowLevel, // "window" is redundant
}
// Implementation-focused naming
pub fn try_from_textual(&self) -> Option<SequenceBase> // Doesn't return Self
Good examples:
// Descriptive, purpose-driven names
let err = error_result;
let use_standard_input = should_use_standard_input;
let column_count = first_line_columns;
// Context-aware naming
struct WindowConfig {
pub level: WindowLevel, // Context is clear from struct name
}
// Semantic naming
pub fn try_build_textual(&self) -> Option<SequenceBase> // Clear about what it builds
Consider the scope and context when naming - a variable named level
inside a WindowConfig
is clearer than window_level
. Use domain-specific terminology that your team understands, and prefer full words over abbreviations unless the abbreviation is universally recognized in your domain (like fd
for file descriptor).
Enter the URL of a public GitHub repository