Règle 400 lignes : pourquoi et comment splitter sans casser
Un fichier > 400l = bug magnet. L'IA perd le contexte, les imports tournent en rond, et personne ne le relit. La règle Next Generation : aucun fichier > 400l, sinon refacto immédiat.
Patterns de split éprouvés
| Type fichier | Split par |
|---|---|
| Route registry (590l) | Domaine fonctionnel (public, legal, funnel, admin) |
| Email templates (513l) | Catégorie (hot, warm, cold, rdv, noShow) + types |
| Edge function (663l) | _types, _utils, _settings, _summary, _scheduler |
| Data file (1132l) | Sous-domaine (mobility, ecosystems, premium, nda) |
| Component (415l) | Composant + helpers + shaders/types externes |
Le pattern aggregator
Après split, le fichier racine devient un agrégateur 20-50l qui réexporte tout. Aucun consommateur ne change. Exemple : caseStudies.ts est passé de 1132l → 19l (aggregator) + 5 fichiers <300l.
Documentation en-tête obligatoire
Chaque fichier commence par un commentaire JSDoc qui liste : son rôle, ses dépendances, le fichier agrégateur parent. L'IA retrouve les dépendances en 1 lecture, pas en 12 grep.
CI : bloquer les fichiers > 400l
Script audit:filesize qui parse src/** et fail si un fichier dépasse 400l (sauf whitelist explicite avec justification). Sans gate, la dette revient en 3 sprints.
Partager