Décentralisation variables : un fichier par config, zéro magic value
Les magic strings/numbers répétés sont la cause #1 des bugs de divergence. La règle : si une valeur apparaît 2+ fois, elle vit dans un fichier de config.
Les fichiers de config Next Generation
| Fichier | Contenu | Consommateurs |
|---|---|---|
| src/config/paths.ts | Toutes les URLs de l'app | Header, Footer, CTAs, links |
| src/config/limits.ts | Rate limits, max sizes, timeouts | Edge functions, forms |
| src/config/brand.ts | Nom, tagline, email, tel, adresse | Header, Footer, emails, JSON-LD |
| src/data/legalEntity.ts | SIREN, SIRET, TVA, RNE | Mentions légales, JSON-LD, presse |
| src/config/socials.ts | URLs LinkedIn, X, GitHub, sameAs | Footer, JSON-LD Person/Org |
| src/config/seo.ts | Default OG, twitter handle, locale | seoRegistry, helpers metadata |
Anti-pattern : URL hardcodée
répété 47 fois → le jour où vous renommez /contact → /devis, vous oubliez 6 endroits. Solution : .
Anti-pattern : numéro de tel dans 12 fichiers
Tel/email/adresse changent rarement, mais quand ça arrive, c'est critique. 1 seul BRAND.phone consommé partout. grep "06 12" doit retourner 1 résultat (le fichier de config).
Validation CI
Script audit:hardcoded qui grep les patterns interdits (URLs en dur, tels, emails, SIREN…) dans src/components/ et src/pages/. Fail si trouvé hors src/config/ et src/data/.
Partager