Barrel Files (piege)
Testing 🟡 MidDéfinition
Fichiers index.ts qui re-exportent tout un dossier. Pratique pour les imports mais cause des problèmes de tree-shaking et de performance en chargeant du code inutilisé.
Analogie
Comme une porte d'entrée unique pour un centre commercial : pratique pour trouver, mais vous devez traverser tout le bâtiment même pour un seul magasin.
Exemple de code
// src/utils/index.ts (barrel file)
export { formatDate } from './date';
export { formatCurrency } from './currency';
export { sendEmail } from './email'; // lourd!
// Probleme: import { formatDate } from './utils'
// => charge aussi sendEmail inutilement
// Fix: import directement depuis le fichier source
Cas d'usage
Acceptable pour les librairies publiées, mais a éviter dans le code applicatif pour les performances.
Anti-pattern
Créer des barrels partout dans le code applicatif, dégradant le tree-shaking et les temps de build.