***Garder des données en « cache » avec « Class »

Dans Blogue

Tags: ,

À tous ceux qui seraient tenté d’utiliser les propriétés de « Class » en « Ruby on Rails », pensez-y à deux fois. Cette méthode, même si à première vue évidente pour faire persister les données entre les appels sur le serveur, sera rapidement une source de problèmes.

Une « Class » persiste en mémoire tout au long de l’exécution d’un programme. Ce qui veut dire le plus longtemps possible pour un serveur web comme WebRick.

Donc, en utilisant un Hash ou un Array au niveau de « Class », sans prévoir de méchanisme pour les nettoyer, on finit par occuper la mémoire en entier par des objets qui n’ont plus aucune utilité, mais qui sont pourtant encore en mémoire puisque référé par la classe où ils ont été mémorisé.

En fait, on peut revenir à un principe bien simple, YAGNI (You Aren’t Gonna Need It… traduit librement : « vous n’en aurez pas besoin »).

Si une cache se révèle vraiment nécessaire, faite la recherche pour l’implémenter correctement. Sinon, le mieux est d’attendre que le besoin pour une cache se fasse sentir.

Articles récents