Immutability
JavaScript 🟡 MidDefinition
Principe de ne jamais modifier les donnees existantes mais de creer de nouvelles copies avec les changements. Object.freeze() pour une immutabilite superficielle en JS natif.
Analogie
Un livre publie : pour corriger une erreur, tu publies une nouvelle edition au lieu de rayer l'ancienne.
Exemple de code
// Immutable update
const user = { name: 'Alice', age: 30 };
const updated = { ...user, age: 31 };
// Array
const arr = [1, 2, 3];
const added = [...arr, 4];
// Freeze
const frozen = Object.freeze({ x: 1 });
Cas d'usage
State management (Redux, React state), historique undo/redo, detection de changements performante.
Anti-pattern
Croire que Object.freeze est profond : les objets imbriques restent mutables.