Memoization
JavaScript 🟡 MidDefinition
Technique de cache qui stocke le resultat d'un appel de fonction base sur ses arguments. Si les memes arguments sont repasses, le resultat est retourne du cache sans recalcul.
Analogie
Un carnet de notes : avant de recalculer, tu verifies si tu as deja note la reponse.
Exemple de code
function memoize(fn) {
const cache = new Map();
return function(...args) {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn.apply(this, args);
cache.set(key, result);
return result;
};
}
Cas d'usage
Fonctions de calcul couteux appelees frequemment avec les memes parametres (fibonacci, selectors Redux).
Anti-pattern
Memoiser des fonctions avec des effets de bord ou des arguments non serialisables.