Coding Preferences
Use this document to capture coding conventions only. Do not duplicate technology choices or platform constraints — those live in the Architecture documents.
1) Naming Conventions
| Element |
Convention |
Example |
| Files |
kebab-case |
user-profile.service |
| Classes/Types |
PascalCase |
UserProfile |
| Functions/Methods |
camelCase |
getUserProfile |
| Constants |
UPPER_SNAKE_CASE |
MAX_RETRY_ATTEMPTS |
| Env vars |
UPPER_SNAKE_CASE |
API_BASE_URL |
2) Files & Directories
- Source roots and common module folders (e.g.,
src/components, src/services):
- Public vs internal modules (what is exported from where):
- Path aliases/barrels (e.g.,
@app/*) and when to use them:
3) Imports & Exports
- Prefer named vs default exports (policy):
- Import ordering (builtin → external → internal):
- Relative vs absolute imports (policy and thresholds):
4) Error Handling
- Approved patterns (exception vs result-type) and when:
- Standard error shapes/codes (reference arch doc if defined):
- Retry/timeout/circuit-breaker usage (reference arch doc if defined):
5) Logging
- Logger usage (avoid
console.log):
- Log levels and guidance (info/warn/error only where meaningful):
- Structured fields to include (e.g., requestId, userId) and redaction rules:
6) Testing Conventions
- Test file naming/location (e.g.,
*.spec.ts next to source):
- Minimum coverage target (%):
- Mocking/stubbing guidance (what to mock and where):
7) Security & Privacy
- Secrets: never commit; use env/config only (reference secret manager in arch doc):
- PII: do not log/store unnecessarily; redact in logs:
- Input validation: apply at trust boundaries (reference arch doc schemas):
8) Git & PR Process
- Commit convention (e.g., Conventional Commits):
- Branch naming scheme:
- Required CI checks for merge:
- PR checklist location (copy or link):
9) Code Review Checklist (paste into PR template if helpful)