afv-library/skills/generating-apex/references/code-review-checklist.md

121 lines
3.2 KiB
Markdown

# Apex Code Review Checklist
Quick-reference checklist for reviewing Apex code. Each item links to the reference file with full examples and guidance.
---
## Critical Issues (Must Fix)
### Bulkification
*Full guide: [bulkification-guide.md](bulkification-guide.md)*
| Check | Status |
|-------|--------|
| No SOQL queries inside loops | ☐ |
| No DML statements inside loops | ☐ |
| Uses collections (List, Set, Map) properly | ☐ |
| Handles 200+ records per trigger batch | ☐ |
---
### Security
*Full guide: [security-guide.md](security-guide.md)*
| Check | Status |
|-------|--------|
| Uses `WITH USER_MODE` for SOQL | ☐ |
| Uses bind variables (no SOQL injection) | ☐ |
| Uses `with sharing` by default | ☐ |
| `without sharing` justified and documented | ☐ |
| No hardcoded credentials | ☐ |
| No hardcoded Record IDs | ☐ |
| Named Credentials used for callouts | ☐ |
---
## Important Issues (Should Fix)
### Architecture
*Full guide: [trigger-actions-framework.md](trigger-actions-framework.md), [design-patterns.md](design-patterns.md)*
| Check | Status |
|-------|--------|
| One trigger per object | ☐ |
| Uses Trigger Actions Framework (or similar) | ☐ |
| Logic-less triggers (delegates to handler) | ☐ |
| Service layer for business logic | ☐ |
| Selector pattern for queries | ☐ |
| Single responsibility per class | ☐ |
---
### Error Handling
*Full guide: [anti-patterns.md](anti-patterns.md)*
| Check | Status |
|-------|--------|
| Catches specific exceptions before generic | ☐ |
| No empty catch blocks | ☐ |
| Errors logged appropriately | ☐ |
| Uses `AuraHandledException` for LWC | ☐ |
| Custom exceptions for business logic | ☐ |
| Exception cause chains preserved | ☐ |
---
### Naming
*Full guide: [naming-conventions.md](naming-conventions.md)*
| Check | Status |
|-------|--------|
| Class names are PascalCase | ☐ |
| Method names are camelCase verbs | ☐ |
| Variable names are descriptive | ☐ |
| No abbreviations (tks, rec, acc) | ☐ |
| Constants are UPPER_SNAKE_CASE | ☐ |
| Collections indicate type (accountsById) | ☐ |
---
### Performance
*Full guide: [bulkification-guide.md](bulkification-guide.md)*
| Check | Status |
|-------|--------|
| Uses `Limits` class to monitor | ☐ |
| Caches expensive operations | ☐ |
| Heavy processing in async | ☐ |
| SOQL filters on indexed fields | ☐ |
| Variables go out of scope (heap) | ☐ |
| No class-level large collections | ☐ |
---
## Minor Issues (Nice to Fix)
### Clean Code
*Full guide: [anti-patterns.md](anti-patterns.md), [best-practices.md](best-practices.md)*
| Check | Status |
|-------|--------|
| No double negatives (`!= false`) | ☐ |
| Boolean conditions extracted to variables | ☐ |
| Methods do one thing | ☐ |
| No side effects in methods | ☐ |
| Consistent formatting | ☐ |
| ApexDoc comments on public methods | ☐ |
---
## Review Process
1. **Static Analysis**: Run PMD / Salesforce Code Analyzer
2. **Bulkification**: Verify no SOQL/DML in loops
3. **Security**: Check sharing, CRUD/FLS, injection
4. **Architecture**: Verify patterns and separation
5. **Naming**: Check conventions
6. **Performance**: Review limits awareness
7. **Documentation**: Verify ApexDoc comments
---