Установка Go

Найти официальный гайд по установке Go можно здесь.

Этот гайд подразумевает, что у вас есть менеджер пакетов, например Homebrew для macOS, Chocolatey для Windows, Apt для Ubuntu или yum для Linux дистрибутивов.

Для демонстрации приведен пример установки для macOS с помощью Homebrew.

Установка

Процесс установки предельно прост. Сначала нужно установить Homebrew, но который имеет зависимость с XCode, поэтому сначала убедитесь или установите XCode Command Line Tools.

xcode-select --install

Затем запустите следующую команду для установки Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

С этого момента у вас есть возможность установить Go командой:

brew install go

*Вы должны следовать инструкциям по установке для вашего пакетного менеджера. Обратите внимание, что для каждого менеджера могут быть свои требования.

Вы можете убедиться, что Go установлен, командой:

$ go version
go version go1.17 darwin/amd64

Настройка окружения для Go

Go Modules

Go версии 1.11 представил новый подход, который называется модули или Go modules. Он стал стандартом начиная с Go 1.16, поэтому использование GOPATH не рекомендуется. Вы можете встретить использование GOPATH в старых обучающих материалах и статьях.

Модули призваны решить проблемы, связанные с управлением зависимостями, выбора нужной версии и надежной и предсказуемой сборки проекта. Подход также позволяет программисту запускать Go-код за пределами GOPATH.

Использование модулей довольно простое. Выберите любую директорию за пределами GOPATH как основную директорию вашего проекта, и создайте новый модуль внутри с помощью команды go mod init.

После выполнения команды создастся файл go.mod, который содержит путь к модулю и версию Go, что требуется для корректной работы модуля при его экспорте и использовании в других проектах.

Если путь до модуля не указан, то go mod init попытается предсказать путь до модуля основываясь на структуре проекта. Это также можно изменить, передав аргумент в эту команду.

mkdir my-project
cd my-project
go mod init <modulepath>

go.mod файл будет выглядеть примерно как показано ниже:

module cmd

go 1.17

Вы можете вызвать Go документацию с помощью следующих команд.

go help mod
go help mod init

Редактор кода

Выбор редактора кода всегда индвидуален, возможно у вас уже есть предпочтение в этом вопросе. Главное, чтобы ваш редактор поддерживал Go. Как один из вариантов вы можете рассмотреть Visual Studio Code и установить его с помощью следующей команды:

brew install --cask visual-studio-code

После установки вы можете проверить, что VS Code установлен правильно, выполнив следующую команду в вашем терминале:

code .

VS Code поставляется с небольшим количеством функционала, но вы можете его расширить, установив плагины. Для поддержки Go нужно установить плагин командой:

code --install-extension golang.go

Когда вы откроете Go файл первый раз в VS Code, вам будет предложено установить инструменты для анализа кода. Вы можете посмотреть список этих инструментов здесь.

Дебагер для Go

Стандартом для отладки Go кода является (также включен в VS Code) Delve. Его можно установить командой:

go get -u github.com/go-delve/delve/cmd/dlv

Для дополнительной информации по настройке и запуску отладки в VS Code, можете посмотреть документацию из официального репозитория плагина.

Линтеры для Go

Помимо стандартного линтера в Go вы можете также использовать golangci-lint, который можно установить командой:

brew install golangci-lint

Рефакторинг кода

Красной нитью во всей книге является важность рефакторинга. Ваши инструменты могут позволить вам делать больше рефакторинга и быть уверенным в конечном результате.

Стоит ознакомиться с вашим редактором кода и изучить базовые комбинации горячих клавиш:

  • Extract/Inline variable. Позволяет взять "магические числа" из вашего кода и дать им имена, что упростит код и его читаемость в несколько шагов.

  • Extract method/function. Важно иметь возможность взять часть кода и вынести его в отдельную функцию или метод.

  • Rename. Вы должны быть уверены, что можете изменить имя символов (переменной, функции и т.д) быстро в нескольких файлах. Ручной рефакторинг утомляет и занимает много времени.

  • go fmt. В Go есть стандартный форматтер вашего кода, который называется go fmt. Ваш редактор должен запускать его при каждом сохранении файла.

  • Run tests. Вы должны иметь возможность запускать ваши тесты и быстро их перезапускать, чтобы убеждаться, что рефакторинг не повредил логику в коде.

Есть также дополнительные инструменты, которые помогут работать с кодом:

  • View function signature - Вам никогда не нужно задумываться о том, как правильно вызвать функцию. Ваша IDE должна описывать и показывать документацию по функции, какие у неё параметры и какое значение она возвращает.

  • View function definition - Если неясно, что делает функция, то у вас должна быть возможность быстро посмотреть исходный код функции и разобраться что происходит.

  • Find usages of a symbol - Вы можете посмотреть как используется функция в контексте других частей приложения, что может помочь выбрать правильный процесс при рефакторинге.

Идеальное владение инструментами поможет концентрироваться на написании кода и снизить когнитивную нагрузку при переключении с одной задачи на другую.

Итоги

Вы установили Go, выбрали редактор кода и настроили базовые инструменты для дальнейшей работы. У Go очень большая экосистема и большой выбор инструментов под каждую задачу. Мы рассмотрели только несколько из них, однако вы можете пойти дальше и посмотреть доступные инструменты на https://awesome-go.com.

Last updated