Что нужно сделать, чтобы начать разработку на голанге?

На момент написания этой статьи (по состоянию на декабрь 2018 г.) я начинаю изучать разработку GO. Я привык к объектно-ориентированным и функциональным парадигмам с динамической типизацией и декларативным стилем, поэтому императивный, структурный и статически типизированный - это что-то новое для меня.

В этом посте я хотел бы поделиться с вами своими первыми шагами в освоении нового языка, чтобы вам было легче погрузиться в него. Надеюсь, мои заметки помогут вам начать изучение golang.

Установка

Я пользователь (и вроде как фанат) MacOS, поэтому я расскажу о полной настройке для этой конкретной платформы.

У нас есть отличный инструмент под названием brew, поэтому я использую его для установки go:

➜ brew install go
==> Downloading https://homebrew.bintray.com/bottles/go-1.11.4.mojave.bottle.tar.gz
Already downloaded: /Users/squixy/Library/Caches/Homebrew/downloads/c36ed39f0fc3e7709ca6a750646eef0073d984de5dc8fb78cdf07d4a2b7b4c9b--go-1.11.4.mojave.bottle.tar.gz
==> Pouring go-1.11.4.mojave.bottle.tar.gz
==> Caveats
A valid GOPATH is required to use the `go get` command.
If $GOPATH is not specified, $HOME/go will be used by default:
  https://golang.org/doc/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.11.4: 9,298 files, 404.3MB

И это почти. Как вы можете видеть в предупреждениях, нам все еще нужно установить GOPATH. Но что это такое? Об этом читайте в следующем разделе.

ГОПАТ

Переменная среды GOPATH указывает расположение вашей рабочей области.

Программисты Go обычно хранят весь свой код Go в едином рабочем пространстве.

Как видите, по соглашению весь ваш код Go (и код, который вы будете импортировать) будет находиться внутри рабочего пространства. Итак, перед тем, как начать, нам нужно указать Go, где мы хотим, чтобы рабочее пространство было, другими словами, где будет жить ваш код. Учтите, что путь GOPATH не совпадает с вашим путем установки Go.

Давайте создадим папку go в домашнем каталоге:

$ mkdir $HOME/go

Теперь вам нужно установить экспорт в файл вашего профиля (либо .bash_profile, как в примере, либо любой .zshrc):

$ open $HOME/.bash_profile
export GOPATH=$HOME/go

Рабочая область - это иерархия каталогов с двумя каталогами в корне:

  • src содержит исходные файлы Go,
  • bin содержит исполняемые команды.

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

export PATH=$PATH:$(go env GOPATH)/bin

Это позволит вызывать скомпилированные вами двоичные файлы.

Зависимости

Если вы пришли с любого другого языка, первое, о чем вы думаете, - это диспетчер зависимостей. В JS у нас есть npm, в Elixir это mix, в Ruby мы используем bundler и так далее.

Есть еще один инструмент для Go, который называется dep - инструмент управления зависимостями. Для этого нам нужно снова использовать brew:

$ brew install dep

По умолчанию он будет установлен в ваш $GOPATH/bin каталог.

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

package main
func main() {}

В противном случае dep будет жаловаться с ошибкой вида: no dirs contained any Go code. Даже если вы создадите пустой файл, go не сможет создать его из-за отсутствия package информации, и вы увидите main.go:1:1: expected ‘package’, found ‘EOF’ ошибку, поэтому dep там тоже не запустится: all dirs contained build errors.

Подпишитесь, чтобы сразу получать самые свежие материалы
https://tinyletter.com/KamilLelonek

Резюме

В этой очень короткой вводной статье я показал вам, как настроить go на MacOS.

Это должны были быть мои личные заметки, особенно потому, что я собираюсь сменить компьютер, но я подумал о том, чтобы поделиться ими и с вами.

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