4 min lecture • Guide 432 of 877
Records de Décision Technique
Les décisions techniques façonnent les systèmes pendant des années. De bons records de décision expliquent le pourquoi, pas seulement le quoi. Une mauvaise documentation signifie répéter les erreurs et la confusion sur les choix de design. Ce guide couvre la documentation efficace des décisions.
Avantages des ADRs
| Avantage | Description |
|---|---|
| Contexte historique | Savoir pourquoi les décisions ont été prises |
| Onboarding | Nouveaux membres comprennent le système |
| Révision | Savoir quand reconsidérer |
| Alignement | L'équipe comprend la direction |
Format ADR
Template Standard
TEMPLATE ADR
════════════
# ADR-001: [Titre de la Décision]
## Statut
[Proposé | Accepté | Déprécié | Remplacé par ADR-XXX]
## Contexte
[Quel est le problème? Pourquoi prenons-nous cette décision?
Historique, contraintes, exigences.]
## Décision
[Qu'avons-nous décidé? Soyez spécifique.]
## Conséquences
### Positives
[Quels sont les avantages?]
### Négatives
[Quels sont les compromis ou risques?]
### Neutres
[Quels autres effets cela a-t-il?]
## Alternatives Considérées
[Quelles autres options avons-nous évaluées?
Pourquoi ne les avons-nous pas choisies?]
## Liés
[Liens vers ADRs, issues ou docs liés]
Exemple d'ADR
# ADR-003: Utiliser PostgreSQL pour Base de Données Principale
## Statut
Accepté (2024-01-15)
## Contexte
Nous avons besoin d'une base de données principale pour notre application SaaS.
Exigences:
- Transactions ACID pour données financières
- Support JSON pour schémas flexibles
- Bon écosystème et outillage
- Options de service managé
## Décision
Nous utiliserons PostgreSQL comme base de données principale.
## Conséquences
### Positives
- Base de données mature, fiable
- Fort support JSON/JSONB
- Excellent écosystème d'outillage
- Disponible en service managé (RDS, Cloud SQL)
- L'équipe a de l'expérience PostgreSQL
### Négatives
- Plus complexe que SQLite pour dev local
- Scaling des écritures nécessite plus de planning
- Besoin de gérer le connection pooling
### Neutres
- Utiliserons des migrations pour changements de schéma
- Besoin de monitoring pour performance
## Alternatives Considérées
- **MySQL**: Capacité similaire, moins de support JSON
- **MongoDB**: Schéma flexible, mais équipe moins expérimentée
- **SQLite**: Trop simple pour besoins production
- **CockroachDB**: Excessif pour l'échelle actuelle
## Liés
- ADR-004: Stratégie de Migration Base de Données
- Guide de setup infrastructure
Quand Écrire des ADRs
Critères de Décision
QUAND ÉCRIRE UN ADR
═══════════════════
ÉCRIRE ADR QUAND:
─────────────────────────────────────
├── Choix de technologie/framework
├── Décision de pattern architectural
├── Compromis significatifs
├── Préoccupations transversales
├── Inverser est coûteux
├── Affecte plusieurs équipes
└── Vous voudriez savoir pourquoi plus tard
NE PAS ÉCRIRE ADR QUAND:
─────────────────────────────────────
├── Détails d'implémentation mineurs
├── Décisions facilement réversibles
├── Choix de style (couvert par linter)
├── Décisions temporaires
└── Évidence pour tout le monde
RÈGLE: Si dans 6 mois quelqu'un demandera
"pourquoi avons-nous fait ça?", documentez maintenant.