Что происходит при обращении к пустому кэшу?

«Что происходит при обращении к пустому кэшу?» — вопрос из категории Алгоритмы и структуры данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При обращении к пустому кэшу система выполняет cache miss и загружает данные из первичного источника (сервер, база данных). Это приводит к:

  • Увеличению времени отклика — показывается индикатор загрузки.
  • Росту сетевого трафика — данные запрашиваются заново.
  • Риску ошибок — если источник данных недоступен.

Пример обработки на Swift:

func loadData() {
    if let cachedData = cache.object(forKey: "dataKey") {
        // Кэш найден — используем его
        updateUI(with: cachedData)
    } else {
        // Кэш пуст — загружаем из сети
        fetchFromServer { [weak self] data in
            // Сохраняем в кэш для будущих запросов
            self?.cache.setObject(data, forKey: "dataKey")
            self?.updateUI(with: data)
        }
    }
}

Best practice: Всегда проектируйте систему с учётом сценария пустого кэша, используя стратегии вроде Cache-Aside или предварительного заполнения кэша.