#123

Не смешивай данные и метаданные

Типовая ситуация: ты пишешь кеш. Запись в кеше — это сами данные и unixtime, когда они были получены.

Популярная ошибка — хранить данные и метаданные (дату добавления) на одном уровне:

function addToCache(key, data = {}) {
  data.addedAt = Date.now();

  cache[key] = data;
}

Не стоит так делать. Не ты создал data, не тебе ее и модифицировать. Кроме того, это абсолютно не очевидно, что код, обслуживающий кеш, может добавлять ключи. (Не говоря уже о том, что addedAt там уже может быть занят).

Правильно:

function addToCache(key, data = {}) {
  const cacheEntry = {
    addedAt: Date.now(),
    data
  };

  cache[key] = cacheEntry;
}