Barrel Files (piege)

Testing 🟡 Mid

Definition

Fichiers index.ts qui re-exportent tout un dossier. Pratique pour les imports mais cause des problemes de tree-shaking et de performance en chargeant du code inutilise.

Analogie

Comme une porte d'entree unique pour un centre commercial : pratique pour trouver, mais vous devez traverser tout le batiment meme 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 publiees, mais a eviter dans le code applicatif pour les performances.

Anti-pattern

Creer des barrels partout dans le code applicatif, degradant le tree-shaking et les temps de build.
#tooling#performance#piege