В чём разница между командами run и start

«В чём разница между командами run и start» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

go run компилирует и сразу выполняет код, не сохраняя бинарник. Удобно для быстрого тестирования.
Пример:

go run main.go

go build компилирует код в исполняемый файл, который можно запустить отдельно.
Пример:

go build -o app main.go
./app

Ключевые отличия:

  1. run - временное выполнение, build - создание бинарника
  2. run удобен для разработки, build - для продакшена
  3. run не требует ручного запуска бинарника

Для долгоживущих процессов лучше использовать build, так как run перекомпилирует код при каждом запуске.