---
name: coding-practices
description: Code quality practices: error handling, validation, logging, and DRY. Use when writing or reviewing code.
---

# Coding Practices

Guidelines for writing maintainable, robust, and self-documenting code.

## Quick Start

```typescript
// Self-documenting with proper error handling
function createUser(email: string, age: number): User {
  if (!email.includes("@")) throw new Error("Invalid email");
  if (age < 0 || age > 150) throw new Error("Invalid age");
  return { email, age };
}
```

## Key Principles

- Use meaningful names (self-documenting code)
- Comments explain "why", not "what"
- DRY: abstract when used 3+ times
- Validate all input data
- Handle all error cases with proper Error objects
- Never ignore errors
- Use named constants instead of magic values
- Avoid circular dependencies

## References

See [rules.md](references/rules.md) for complete guidelines with examples.
