DOC
Accueil/ Projets/ Gestion RH/ ADR-0002 - Application monolithique dans un seul `App.jsx`

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 »