Выбор ответа Junior Тесты, бенчмарки и модули обновлено

Зачем go.sum

Вопрос

Что хранится в go.sum и нужно ли его коммитить?

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

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

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

Коротко

Правильный ответ: Хеши модулей и их go.mod; коммитить, чтобы ловить подмену. go.sum содержит SHA-256 хеши архивов модулей и их go.mod.

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

  1. Хеши модулей и их go.mod; коммитить, чтобы ловить подменуправильный ответ
  2. Точные версии, как lock-файл; коммитить не нужно, их даст go.mod
  3. Кеш скачанных модулей; коммитить не нужно, он в .gitignore
  4. Лицензии зависимостей; коммитить нужно для юридической проверки

Разбор

go.sum содержит SHA-256 хеши архивов модулей и их go.mod. При скачивании go сверяет хеши с go.sum, а для новых модулей ещё и с публичной базой sum.golang.org. Выбор версий определяет go.mod через MVS, а не go.sum. Кеш модулей лежит в GOMODCACHE. Лицензий там нет.

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

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