# Revues de code
Source: https://docs.lomi.africa/resources/contributing/code-reviews

La revue de code garantit qualité du code, transmission des connaissances et maintenabilité.

***

title: 'Revues de code'
description: 'La revue de code garantit qualité du code, transmission des connaissances et maintenabilité.'
-----------------------------------------------------------------------------------------------------------

## Lignes directrices des pull requests

### Format du titre

```bash filename="Format du titre de PR"
# Format
<type>(<scope>): <description>

# Exemples
feat(payments): intégrer le prestataire Wave
fix(webhooks): gérer les erreurs de timeout
docs(api): mettre à jour le guide d'authentification
```

### Modèle de description

```markdown filename="Modèle de description de PR"
## Changements

- Intégration du prestataire Wave
- Vérification de signature webhook
- Mise à jour de la documentation API

## Tests

- Tests unitaires pour le traitement des paiements
- Tests d'intégration pour les webhooks
- Tests manuels avec identifiants de test

## Captures d'écran

[Si applicable]

## Tickets liés

Closes #123
```

## Processus de revue

### Auto-revue avant envoi

```bash filename="Terminal - Self Review Checks"
# Run tests
npm test

# Check linting
npm run lint

# Build documentation
npm run docs:build
```

### Revue 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

## Points à revoir

### 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

```typescript filename="Submitter Example (Good vs Bad)"
// 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

```typescript filename="Reviewer Example (Good vs Bad Feedback)"
// 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 wrong
```

### Exemples de code

```typescript filename="Code Example (Before/After)"
// 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

```typescript filename="Constructive Feedback Example"
// 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

```typescript filename="Suggestion Example"
// Instead of:
// // Use better names

// Better:
// Consider more descriptive names:
// - `processPayment` -> `validateAndProcessPayment`
// - `data` -> `paymentData`
```

## Après la revue

### Intégrer les retours

```bash filename="Terminal - Addressing Feedback"
# 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-lease
```

### Fusion

```bash filename="Terminal - Merging Strategies"
# Squash and merge
git checkout develop
git merge --squash feature/payment-method

# Or rebase and merge
git checkout develop
git rebase feature/payment-method
```

## Étapes suivantes

* [Bonnes pratiques](/resources/contributing/best-practices)
* [Stratégie de branches](/resources/contributing/branching-strategy)
* [Versionnement](/resources/contributing/versioning)
