ADR-0002 - Application monolithique dans un seul App.jsx
- Statut : ⚠️ Accepté (état de fait) - à faire évoluer
- Date : 2026-07-10 (constat)
- Tags : architecture, maintenabilité
Contexte
L'application a grossi de façon incrémentale, apparemment éditée en grande partie
via l'éditeur web de GitHub (historique : suite de commits « Update App.jsx »,
« Add files via upload »). Tout le code applicatif est concentré dans
gestionrh-github/src/App.jsx (~2 800 lignes) : pages, composants, logique métier,
constantes.
Décision
Conserver - pour l'instant - l'ensemble du code dans un fichier unique, sans découpage en modules, sans tests ni lint.
Conséquences
Positives
- Édition possible directement depuis l'UI GitHub (aucun setup local requis).
- Vue d'ensemble dans un seul fichier ; pas de « plomberie » d'imports.
Négatives / compromis
- Compréhension et navigation difficiles ; onboarding lent.
- Impossible d'écrire des tests unitaires ciblés (logique paie/alertes mêlée à l'UI).
- Conflits de fusion quasi garantis à plusieurs.
- Rechargement à chaud et perfs de dev dégradés sur un très gros fichier.
Risques & dette induite
- Toute évolution de la paie ou des droits se fait sans filet → régressions.
Alternatives envisagées
| Option | Avantages | Inconvénients | Retenue ? |
|---|---|---|---|
| Statu quo (1 fichier) | Simplicité d'édition web | Dette croissante | ✅ (temporaire) |
Découpage pages/, domain/, components/ui/ |
Testabilité, lisibilité | Nécessite un dev local + build | ⏳ recommandé |
Décision cible (proposée)
Migrer progressivement vers le découpage décrit dans
../02-conventions-et-organisation-code.md §4,
en commençant par extraire domain/payroll.js et domain/alerts.js pour les tester.
Voir ../prompts/02-refactor-decoupage.md.
Références
gestionrh-github/src/App.jsx(2 801 lignes)- Historique Git : commits « Update App.jsx »
