---
description: Enforce consistent naming semantics across all code
---

# Naming standards

## Semantics

- Prefer descriptive names over abbreviations: `getUserProfile` over `getUP`.
- Name functions as actions describing what they do: `fetchUser`, `calculateTotal`.
- Prefix booleans with `is`, `has`, `should`, or `can`: `isLoading`, `hasAccess`.
- Avoid negative boolean names: `isEnabled` over `isNotDisabled`.
- Prefix event handlers with `handle`: `handleClick`, `handleSubmit`.
- Name collections as plurals: `users`.
- Name items as singulars: `user`.

## Test naming

- Name tests with descriptive phrases that state the expected behavior.
