Prompt
Choose variable, function, and method names that clearly communicate their purpose and behavior. Avoid ambiguous abbreviations, numbered suffixes, double negatives, and names that don’t accurately reflect functionality.
Key principles:
- Use descriptive names over abbreviated ones:
preemptorPodPriorityinstead ofpodPriority,candidateHyperNodesinstead ofreScoreHyperNodes - Avoid numbered suffixes:
okinstead ofok1 - Eliminate double negatives: use
nodeIsReadyinstead of!nodeIsNotReady - Follow Go conventions: use camelCase, not underscores (
filterVictimsFnnotpreemptable_reclaimable_fn) - Ensure function names match their behavior: if a function does both predicate and scoring, name it accordingly like
checkNodeGPUSharingPredicateWithScore
Example:
// Poor naming
func (pmpt *Action) taskEligibleToPreemptOthers(preemptor *api.TaskInfo) (bool, string) {
podPriority := PodPriority(preemptor.Pod) // Unclear whose priority
// ...
}
// Better naming
func (pmpt *Action) taskEligibleToPreemptOthers(preemptor *api.TaskInfo) (bool, string) {
preemptorPodPriority := PodPriority(preemptor.Pod) // Clear ownership
// ...
}
Clear naming reduces cognitive load, prevents misunderstandings, and makes code self-documenting for future maintainers.