Memoization

JavaScript 🟡 Mid

Définition

Technique de cache qui stocke le résultat d'un appel de fonction base sur ses arguments. Si les mêmes arguments sont repasses, le résultat est retourne du cache sans recalcul.

Analogie

Un carnet de notes : avant de recalculer, tu vérifies si tu as déjà note la réponse.

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 coûteux appelées fréquemment avec les mêmes paramètrès (fibonacci, selectors Redux).

Anti-pattern

Memoiser des fonctions avec des effets de bord ou des arguments non serialisables.
#core#performance#fonctionnel

← → au clavier pour passer d'une fiche à l'autre