Что нужно сделать, чтобы начать разработку на голанге?
На момент написания этой статьи (по состоянию на декабрь 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.
Это должны были быть мои личные заметки, особенно потому, что я собираюсь сменить компьютер, но я подумал о том, чтобы поделиться ими и с вами.
Дайте мне знать, если у вас есть еще кое-что, о чем стоит упомянуть, в противном случае я надеюсь, что они также помогут вам.