Для чего нужен Go.sum

«Для чего нужен Go.sum» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Файл go.sum содержит криптографические хеши зависимостей проекта, обеспечивая безопасность и воспроизводимость сборок. Он фиксирует точные версии модулей и их содержимое, предотвращая подмену кода (атаки supply-chain).

Пример структуры:

github.com/example/module v1.2.3 h1:abCdEfGh...  
github.com/example/module v1.2.3/go.mod h1:ijKlMnOp...  

Зачем:

  1. Верификацияgo mod verify проверяет, что скачанные модули соответствуют хешам.
  2. Консистентность — даже если go.mod разрешает обновления, go.sum гарантирует неизменность ранее использованных версий.

Файл должен коммититься в VCS, иначе другие разработчики или CI могут столкнуться с ошибками при проверке зависимостей.