Выбор ответа Middle context обновлено

Что класть в context.WithValue

Вопрос

Что уместно передавать через context.WithValue?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Данные запроса: request id, пользователь, trace span. Контекст несёт то, что относится к конкретному запросу и пересекает границы API.

Варианты ответа

  1. Соединение с базой данных, чтобы не тащить его в аргументах
  2. Необязательные параметры функции вместо лишних аргументов
  3. Данные запроса: request id, пользователь, trace spanправильный ответ
  4. Конфигурацию приложения, загруженную при старте

Разбор

Контекст несёт то, что относится к конкретному запросу и пересекает границы API. Зависимости (база, логгер по умолчанию, конфиг) передаются явно: через поля структуры или аргументы, иначе они становятся невидимыми и не проверяются компилятором. Параметры функции через контекст тоже прячут контракт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.