Revues de code
La revue de code garantit qualité du code, transmission des connaissances et maintenabilité.
Lignes directrices des pull requests
Format du titre
# Format
<type>(<scope>): <description>
# Examples
feat(payments): implement Wave payment provider
fix(webhooks): handle timeout errors
docs(api): update authentication guideModèle de description
## Changes
- Added Wave payment provider integration
- Implemented webhook signature verification
- Updated API documentation
## Testing
- Unit tests added for payment processing
- Integration tests for webhook handling
- Manual testing with test credentials
## Screenshots
[If applicable]
## Related issues
Closes #123Processus de revue
Auto-revue avant envoi
# Run tests
npm test
# Check linting
npm run lint
# Build documentation
npm run docs:buildRevue par les pairs
- Solliciter les membres pertinents
- Traiter les retours rapidement
- Demander une nouvelle revue après corrections
Contrôles CI
- Tests au vert
- Couverture respectée si exigée
- Pas de vulnérabilité bloquante
- Documentation à jour
Checklist de revue
Qualité du code
- Conformité aux standards
- Pas de duplication inutile
- Gestion d’erreurs correcte
- Implémentation efficace
Tests
- Tests unitaires ajoutés/mis à jour
- Tests d’intégration si besoin
- Cas limites couverts
- Couverture maintenue
Sécurité
- Validation des entrées
- Authentification / autorisation
- Gestion des données sensibles
- Bonnes pratiques de sécurité
Documentation
- Commentaires utiles
- Documentation API
- README mis à jour
- Entrée changelog si nécessaire
Bonnes pratiques
Côté auteur
// DO: Small, focused changes
function validatePayment(amount: number): boolean {
return amount > 0 && amount <= 1000000;
}
// DON'T: Multiple unrelated changes
/*
function validateAndProcessPayment() {
// Mixed concerns
}
*/Côté relecteur
// Good feedback
// Consider using a type guard for better type safety
function isValidAmount(amount: unknown): amount is number {
return typeof amount === 'number' && amount > 0;
}
// Unhelpful feedback
// // This is wrongExemples de code
// Before
/*
function process(data) {
if (data) {
return data.value;
}
}
*/
// After
function process(data: InputData): OutputData {
if (!data) {
throw new Error('Data is required');
}
return data.value;
}Commentaires de revue
Retours constructifs
// Instead of:
// // This is messy
// Better:
// Consider extracting this logic into a separate function
// for better reusability and testing:
function validateWebhookSignature(payload: string, signature: string): boolean {
// Implementation
}Suggestions
// Instead of:
// // Use better names
// Better:
// Consider more descriptive names:
// - `processPayment` -> `validateAndProcessPayment`
// - `data` -> `paymentData`Après la revue
Intégrer les retours
# Update branch
git fetch origin
git rebase origin/develop
# Make changes
git add .
git commit -m "fix: address review feedback"
# Force push if needed
git push --force-with-leaseFusion
# Squash and merge
git checkout develop
git merge --squash feature/payment-method
# Or rebase and merge
git checkout develop
git rebase feature/payment-method