Мемоизация — это приём оптимизации, при котором первый результат вычисления кэшируется в памяти и при следующем вызове уже используется готовое значение.
Цель — не выполнять тяжёлые операции дважды.
Зачем нужно?
🔘Уменьшает количество запросов к базе
🔘ускоряет повторные вычисления
🔘снижает нагрузку на API и Базы данных
🔘ускоряет рендеринг страниц
В примере на картинке у первого пользователя мы получаем список разрешений, которые будут использоваться для вычисления его доступа к различным частям сайта.
Предполагаем, что список доступа мы будем проверять часто в рамках загрузки страницы и сам список хранится в БД.
Получив список прав один раз, мы сохраняем данные в переменной
@permissions_list и далее мы его переиспользуем из переменной, не атакуя базу данных лишними запросами для каждой проверки.Важно:
Мемоизация подходит для данных, которые не меняются в рамках одного запроса.
#словарь
Группа: @pro_ruby_on_rails_ru
Вопросы: @ilia_zykin
❤️ лайк 🔂 репост
