Always use descriptive variable names that clearly indicate their purpose without requiring readers to check call sites or implementation details. Avoid single-letter variables like `t` or vague abbreviations, especially in public interfaces and open-source code. Additionally, ensure clear distinction between similarly named variables, particularly when...
Always use descriptive variable names that clearly indicate their purpose without requiring readers to check call sites or implementation details. Avoid single-letter variables like t
or vague abbreviations, especially in public interfaces and open-source code. Additionally, ensure clear distinction between similarly named variables, particularly when distinguishing between member variables and local variables with related purposes.
Bad example:
void LayoutManager::assert_no_overlapping_storages(const Node& node, size_t t) {
// t is unclear - does it mean time, temporary, or something else?
}
class AliasAnalyzer {
private:
std::set<Value*> aliases_;
void someMethod() {
std::set<Value*> aliases; // Confusing similarity to member variable
// Code using both aliases_ and aliases
}
};
Good example:
void LayoutManager::assert_no_overlapping_storages(const Node& node, size_t nodeIdx) {
// Clear that this refers to a node index
}
class AliasAnalyzer {
private:
std::set<Value*> finalized_aliases_; // More descriptive name
void someMethod() {
std::set<Value*> current_aliases; // Clearly distinct from member variable
// Code using both finalized_aliases_ and current_aliases
}
};
Enter the URL of a public GitHub repository