Essayer gratuitement
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

AvantageDescription
Contexte historiqueSavoir pourquoi les décisions ont été prises
OnboardingNouveaux membres comprennent le système
RévisionSavoir quand reconsidérer
AlignementL'é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.

Solutions Connexes