Go – это язык программирования, который появился благодаря долгим поискам команды Google. Разработчикам постоянно приходилось идти на компромисс: либо ты выбираешь эффективный язык программирования, который долго компилируется, либо выбираешь язык, который компилируется быстрее, но совершенно неэффективен в производстве. При разработке Go учитывались три главных аспекта: быстрая компиляция, простота программирования и эффективное выполнение в производстве.
Go – это универсальный язык программирования, который можно использовать для многих различных программных проектов, но особенно хорошо он подходит для сетевых программ и распределенных систем, благодаря чему он заслужил репутацию «языка облака». Его цель – помочь современному программисту сделать больше (для этого у него есть мощный набор инструментов), устранить споры о форматировании, сделав формат частью спецификации языка, а также упростить развертывание путем компиляции в один двоичный файл. Go легко изучить, так как он состоит из очень небольшого набора ключевых слов. Это отличный язык как для начинающих, так и для опытных разработчиков.
В этом мануале узнаете, как установить Go на локальный компьютер MacOS и настроить среду разработки с помощью командной строки.
Требования
Для работы вам нужен локальный компьютер MacOS с административным доступом, подключенный к Интернету.
1: Терминал
Большая часть действий будет выполняться в командной строке. Командная строка представляет собой неграфический способ взаимодействия с компьютером. Вместо нажатия кнопок с помощью мыши вы вводите команды в виде текста и получаете обратную связь опять же в виде текста. Командная строка, также известная как оболочка, позволяет вам автоматизировать многие рутинные задачи и является важным инструментом для разработчиков программного обеспечения.
Открыть приложение терминала в macOS можно через Finder → Applications → Utilities. Здесь дважды кликните по приложению Terminal.
Также для доступа к терминалу можно зажать Command, нажать Space и ввести Terminal в появившемся поле.
Если вы хорошо знакомы с терминалом Linux, то вы быстро разберетесь с терминалом macOS, так как они очень похожи.
Читайте также: Основы работы с терминалом Linux
2: Установка инструментов командной строки Xcode
Xcode – это интегрированная среда разработки (IDE), которая включает инструменты разработки программного обеспечения для macOS.
Чтобы узнать, установлен ли Xcode в вашей системе, введите в терминал:
xcode-select -p
Следующий вывод значит, что Xcode установлен:
/Library/Developer/CommandLineTools
Если вы получили ошибку, значит, вам нужно открыть браузер, установить Xcode из App Store и принять стандартные параметры.
После этого вернитесь в окно терминала. Вам нужно установить инструменты командной строки Xcode, для этого введите:
xcode-select --install
Теперь Xcode и его приложение Command Line Tools установлены, можно установить Homebrew.
3: Установка и настройка Homebrew
Интерфейс командной строки macOS обладает почти всеми функциями Linux и других Unix-подобных систем, но он не включает в себя менеджер пакетов. Менеджер пакетов – это набор инструментов, который автоматизирует установку, настройку и обновление программ. Эти инструменты обеспечивают централизованное хранение программ и могут поддерживать все программные пакеты в системе в разных форматах. Homebrew – это бесплатная система управления пакетами с открытым исходным кодом, которая упрощает установку программного обеспечения на macOS. Используйте Homebrew, чтобы установить последнюю версию Ruby, а затем настроить систему для использования этой версии вместо текущей версии Ruby по умолчанию.
Чтобы установить Homebrew, введите в терминал:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew и его сценарий установки написаны на Ruby, поэтому он изменит путь Ruby на вашем компьютере. Команда curl извлекает скрипт по указанному URL-адресу. Этот сценарий сначала объяснит, что он будет делать, а затем приостановит процесс, чтобы запросить подтверждение. Так вы получите много информации о том, что скрипт будет делать с вашей системой, и сможете проверить процесс.
При этом будет предложено ввести пароль. Однако при вводе пароля символы не отображаются в окне терминала. Эта мера безопасности часто применяется при запросе паролей в командной строке. Вы не будете видеть символов, но система все равно будет фиксировать нажимаемые клавиши. Введите пароль, нажмите Return и программа будет установлена.
Нажмите клавишу у, чтобы ответить yes, когда вам будет предложено подтвердить установку.
В команде использованы такие флаги:
- Флаг -f (–fail) блокирует в терминале вывод HTML-документа при ошибках сервера.
- Флаг -s (–silent) отключает индикатор выполнения.
- Флаг -S (–show-error) включает поддержку сообщений об ошибках curl.
- Флаг -L (–location) включает обработку редиректов. Если сервер сообщает, что запрошенная страница переместилась на другой адрес, команда автоматически отправит запрос в новое местоположение.
После установки нужно сделать каталог, который Homebrew использует для хранения исполняемых файлов, первым значением переменной среды PATH. Так все инструменты macOS смогут вызывать установленные через Homebrew программы.
Создайте файл ~/.bash_profile в текстовом редакторе:
nano ~/.bash_profile
Добавьте в конец файла:
export PATH=/usr/local/bin:$PATH
Чтобы сохранить изменения, удерживайте клавишу Ctrl и O, при появлении запроса нажмите клавишу Return. Затем выйдите из редактора, удерживая клавишу Ctrl и нажав X. Это вернет вас в терминал.
Чтобы активировать все изменения, введите:
source ~/.bash_profile
После этого изменения, внесенные в переменную среды PATH, вступят в силу.
Убедитесь, что Homebrew работает. Введите:
brew doctor
В терминале появится:
Your system is ready to brew.
Если что-то пошло не так, вы получите предупреждение. Если Homebrew нужно обновить, вам будет предложено ввести команду:
brew update
4: Установка Go
После установки Homebrew вы можете легко установить множество инструментов разработки и других программ.
Следующая команда выводит список всех доступных пакетов Homebrew:
brew search
Чтобы сузить поиск до связанных с Go пакетов и модулей, укажите:
brew search golang
Примечание: Мы не рекомендуем использовать запрос brew search go, поскольку он возвращает слишком много результатов. Слово «go» короткое, а потому оно совпадает со многими пакетами. Сейчас обычно в качестве поискового запроса используют golang (в том числе и при поиске в Интернете статей, связанных с Go). Термин Golang появился благодаря домену Go, golang.org.
В терминале появится список доступных пакетов:
golang golang-migrate
Go будет в этом списке. Установите этот пакет:
brew install golang
Терминал сообщит вам о прогрессе установки Go. Этот процесс может занять несколько минут.
Чтобы проверить установленную версию Go, введите следующую команду:
go version
Эта команда выведет версию Go, которая установлена в данный момент, по умолчанию это будет самая актуальная и стабильная версия Go из доступных.
В будущем, чтобы обновить Go, вы можете запустить следующие команды. Первая обновляет Homebrew, а вторая обновляет Go. Вам не нужно делать этого сейчас, так как вы только что установили последнюю версию.
brew update
brew upgrade golang
Первая команда обновит Homebrew, гарантируя, что у вас будет самая свежая информация о пакетах, которые нужно установить. Команда brew upgrade golang обновит пакет golang до последней версии.
Экземпляр Go рекомендуется поддерживать в актуальном состоянии, своевременно обновляя его.
Установив Go на ваш компьютер, вы можете создать рабочее пространство для своих проектов Go.
5: Создание рабочего пространства Go
Теперь, когда у вас установлены Xcode, Homebrew и Go, вы можете приступить к созданию своего рабочего пространства для программирования.
Рабочая среда Go будет содержать в корне два каталога:
- src: это каталог, содержащий исходные файлы Go. Исходный файл – это файл, который вы пишете на языке программирования Go. Исходные файлы используются компилятором Go для создания исполняемого двоичного файла.
- bin: каталог, содержащий исполняемые файлы, созданные и установленные инструментами Go. Исполняемые файлы – это двоичные файлы, которые запускаются в системе и выполняют задачи. Обычно это программы, скомпилированные из исходного кода Go.
Подкаталог src может содержать несколько репозиториев контроля версий (таких как Git, Mercurial или Bazaar). Вы увидите в нем каталоги типа github.com или golang.org, когда ваша программа импортирует сторонние библиотеки. Если вы используете репозиторий кода, например github.com, вы должны поместить свои проекты и исходные файлы в этот каталог. Это позволяет импортировать код в ваш проект. Канонический импорт – это импорт, который ссылается на полностью определенный пакет.
Вот так выглядит типичное рабочее пространство:
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── godo
├── .git # Git reposistory metadata
├── account.go # package source
├── account_test.go # test source
├── ...
├── timestamp.go
├── timestamp_test.go
└── util
├── server.go
└── server_test.go
C версии 1.8 каталог по умолчанию для рабочего пространства Go – это домашний каталог вашего пользователя с подкаталогом go или $HOME/go. Если вы используете более раннюю версию Go, рекомендуется все же использовать для вашего рабочего пространства расположение $HOME/go.
Выполните следующую команду, чтобы создать структуру каталогов для вашего рабочего пространства Go:
mkdir -p $HOME/go/{bin,src}
Опция -p создает все родительские каталоги, если они в настоящее время не существуют. {bin, src} создает набор аргументов для команды mkdir и помогает ей создать каталоги bin и src.
В итоге получится такая структура каталогов:
└── $HOME
└── go
├── bin
└── src
До версии 1.8 требовалось устанавливать локальную переменную среды $GOPATH. Явно это больше не требуется, но по-прежнему считается хорошей практикой, поскольку многие сторонние инструменты все еще зависят от этой переменной.
Установить $GOPATH можно в файле ~/.bash_profile.
Откройте этот файл в редакторе:
nano ~/.bash_profile
Установите переменную $GOPATH:
export GOPATH=$HOME/go
Когда Go компилирует и устанавливает инструменты, он помещает их в каталог $GOPATH/bin. Для удобства в файле ~/.bash_profile подкаталог /bin рабочей области добавляют в PATH:
export PATH=$PATH:$GOPATH/bin
Теперь в файле ~/bash_profile у вас должны быть следующие записи:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
Это позволит вам запускать любые программы, которые вы компилируете или загружаете с помощью инструментов Go, в любой точке вашей системы.
Чтобы обновить оболочку, введите следующую команду:
. ~/.bash_profile
Вы можете убедиться, что $PATH обновилась, используя команду echo:
echo $PATH
Вы должны увидеть $GOPATH/bin, который появится в вашем домашнем каталоге. Если вы вошли в систему как пользователь 8host, вы увидите путь /Users/8host/go/bin.
/Users/8host/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Теперь, когда у вас есть базовая рабочая среда и установленная переменная $GOPATH, вы можете использовать следующую структуру для разработки проектов (в этом примере предполагается, что вы используете github.com в качестве хранилища):
$GOPATH/src/github.com/username/project
Такое структурирование проектов позволит получать к ним доступ с помощью инструмента go get. Это также нужно для удобочитаемости.
Вы можете проверить, работает ли структура, с помощью команды go get:
go get github.com/username/project
Запросив каталог, вы увидите, что пакет был загружен:
ls -l $GOPATH/src/github.com/username/project
-rw-r--r-- 1 8host staff 2892 Apr 5 15:56 CHANGELOG.md
-rw-r--r-- 1 8host staff 1851 Apr 5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r-- 1 8host staff 4893 Apr 5 15:56 vpcs.go
-rw-r--r-- 1 8host staff 4091 Apr 5 15:56 vpcs_test.go
6: Создание простой программы Go
Теперь у вас есть рабочее пространство Go. Попробуйте создать в нем простую программу «Hello, World!». Так вы сможете убедиться, что среда работает, а заодно и ближе познакомиться с Go.
Поскольку сейчас мы создадим простейший исходный файл Go, а не настоящий проект, входить в рабочее пространство не обязательно.
Перейдите в домашний каталог, откройте текстовый редактор и создайте файл:
nano hello.go
Введите следующий код:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Сохраните и закройте файл.
Этот код будет использовать пакет fmt и вызовет функцию Println с аргументом Hello, World!. Это отобразит фразу Hello, World! в терминал при запуске программы.
Когда вы выйдете из nano и вернетесь к своей оболочке, запустите программу:
go run hello.go
Программа hello.go, которую вы только что создали, покажет следующий вывод:
Hello, World!
Вы написали базовую программу, чтобы убедиться, что ваше рабочее пространство Go правильно настроено.
Заключение
Теперь вы можете использовать рабочее пространство Go на локальной машине macOS для создания своих собственных проектов.
Читайте также: Написание комментариев в Go