Введение

golang.org — это язык программирования, созданный Google в результате разочарования в других языках. Разработчикам постоянно приходилось выбирать между эффективным языком программирования с очень длительным временем компиляции и удобным языком программирования, не отличающимся эффективностью в производственной среде. Язык Go был разработан, чтобы одновременно обеспечить все три преимущества: высокую скорость компиляции, удобство программирования и эффективное исполнение в производственной среде.

Go — это универсальный язык программирования, который можно использовать для различных проектов программирования. Он особенно хорошо подходит для сетевых программ/распределенных систем и заработал себе репутацию «языка облака». Он дает современным программистам больше возможностей благодаря мощному набору инструментов, позволяет устранить разногласия по поводу форматирования, делая формат частью спецификации языка, а также упрощает развертывание за счет компиляции в единый двоичный файл. Язык Go очень простой в обучении и имеет небольшой набор ключевых слов, что делает его идеальным вариантом как для начинающих, так и для опытных программистов.

В этом руководстве вы научитесь устанавливать Go на локальном компьютере macOS и настраивать среду программирования через командную строку.

Предварительные требования

macos illustration for: Предварительные требования

Вам потребуется компьютер macOS с административным доступом и подключением к Интернету.

Шаг 1 — Открытие терминала

Основную часть установки и настройки мы будем выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь в текстовом формате. Командная строка, также называемая «оболочка», помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах. Это необходимый и очень важный инструмент для разработчиков программного обеспечения.

Терминал macOS — это приложение, которое вы можете использовать для доступа к интерфейсу командной строки. Вы можете найти его в Finder, как и любое другое приложение. Для этого перейдите в папку «Приложения», а затем в папку «Утилиты». В этой папке дважды нажмите на приложение Terminal, чтобы открыть его как любое другое приложение. Также вы можете использовать поиск Spotlight, удерживая клавиши CMD и ПРОБЕЛ и вводя Terminal в появляющемся поле.

Существует множество разнообразных команд терминала, с помощью которых вы можете выполнять множество различных задач. Статья [Введение в терминал Linux] (https://www.progressiverobot.com/an-introduction-to-the-linux-terminal/) поможет вам лучше сориентироваться в работе с терминалом Linux, который похож на терминал macOS.

Вы открыли терминал и теперь вы можете загрузить и установить пакет инструментов для разработчиков Xcode, который вам потребуется для установки Go.

Шаг 2 — Установка Xcode

Xcode — это *интегрированная среда разработки* (IDE), состоящая из различных инструментов разработки программного обеспечения для macOS. Вы можете проверить установку Xcode, введя в окне терминала следующую команду:

				
					
xcode-select -p

				
			

Следующие результаты означают, что среда разработки Xcode установлена:

				
					
[secondary_label Output]

/Library/Developer/CommandLineTools

				
			

Если вы получили сообщение об ошибке, выполните установку [Xcode через App Store] (https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2) в браузере, используя параметры по умолчанию.

После установки Xcode вернитесь в окно терминала. Теперь вам нужно установить отдельное приложение Command Line Tools Xcode с инструментами командной строки. Для этого введите следующую команду:

				
					
xcode-select --install

				
			

Теперь вы установили Xcode и приложение Command Line Tools, и мы готовы к установке диспетчера пакетов Homebrew.

Шаг 3 — Установка и настройка Homebrew

Хотя терминал macOS обладает многими функциями, совпадающими с функциями терминалов Linux и других систем Unix, в нем отсутствует встроенный диспетчер пакетов, основанный на передовом опыте. Диспетчер пакетов — это набор программных инструментов для автоматизации процессов установки, в число которых входят начальная установка программного обеспечения, обновление и настройка программного обеспечения, а также удаление программного обеспечения в случае необходимости. Диспетчер пакетов обеспечивает централизованное хранение установочных файлов и может обслуживать все программные пакеты в системе в распространенных форматах. Homebrew — это бесплатная система управления пакетами с открытым исходным кодом для macOS, упрощающая установку программного обеспечения в macOS.

Для установки Homebrew введите в окно терминала следующее:

				
					
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

				
			

Диспетчер Homebrew создан на языке Ruby и поэтому он изменит путь Ruby на вашем компьютере. Команда curl извлекает скрипт из заданного URL. Этот скрипт объясняет, какие операции будут выполнены, а затем приостанавливает процесс в ожидании вашего подтверждения. Так вы получаете большой объем обратной связи по работе скрипта в вашей системе, а также возможность проверить выполнение процесса.

Если вам потребуется ввести пароль, учтите, что нажимаемые клавиши не отображаются в окне терминала, но их ввод регистрируется. Просто нажмите клавишу Return после завершения ввода пароля. В противном случае нажмите клавишу y («Да»), чтобы подтвердить установку.

Просмотрим флаги, связанные с командой curl:

  • Флаг -f или --fail предписывает окну терминала не выводить документы HTML при ошибках сервера.
  • Флаг -s или --silent заглушает вывод curl так, что команда не отображает счетчик выполнения. В сочетании с флагом -S или --show-error этот флаг гарантирует вывод командой curl сообщения об ошибке в случае сбоя.
  • Флаг -L или --location предписывает команде curl повторить запрос в новое место, если сервер сообщает, что запрошенная страница перемещена в другое место.

После завершения процесса установки мы поместим директорию Homebrew на верхний уровень переменной среды PATH. Благодаря этому установка Homebrew будет вызываться для инструментов, которые macOS может автоматически выбирать и которые могут запускаться против создаваемой нами среды разработки.

Вам следует создать или открыть файл ~/.bash_profile с помощью текстового редактора командной строки nano, используя команду nano:

				
					
nano ~/.bash_profile

				
			

Когда файл откроется в окне терминала, введите следующую команду:

				
					
export PATH=/usr/local/bin:$PATH

				
			

Для сохранения изменений нажмите клавишу CTRL и букву o, а затем нажмите клавишу RETURN, когда система предложит вам сделать это. Теперь вы можете выйти из nano, нажав клавишу CTRL и букву x.

Для активации этих изменений выполните в терминале следующую команду:

				
					
source ~/.bash_profile

				
			

После этого внесенные вами изменения переменной среды PATH вступят в силу.

Вы можете убедиться в успешной установке Homebrew с помощью следующей команды:

				
					
brew doctor

				
			

Если никакие обновления не требуются, на экране терминала появится следующее:

				
					
[secondary_label Output]

Your system is ready to brew.

				
			

В ином случае может быть выведено предупреждение о необходимости запуска другой команды, например brew update для проверки актуальности установленной версии Homebrew.

После завершения установки Homebrew вы можете переходить к установке Go.

Шаг 4 — Установка Go

Вы можете использовать Homebrew для поиска всех доступных пакетов с помощью команды brew search. В этом руководстве мы будем искать пакеты или модули, связанные с Go:

				
					
brew search golang

				
			

Примечание. В этом руководстве не используется команда brew search go, поскольку она возвращает слишком много результатов. Поскольку go — очень короткое слово, и ему может соответствовать много пакетов, в качестве поискового запроса обычно используют golang. Эта практика также обычно применяется при поиске статей по Go в Интернете. Термин *Golang* происходит от названия домена Go, а именно golang.org.

Терминал выведет список модулей, которые вы можете установить:

				
					
[secondary_label Output]

golang	golang-migrate

				
			

В этом списке будет и Go. Переходите к установке:

				
					
brew install golang

				
			

В окне терминала будет отображаться информация по процессу установки Go. Установка может занять несколько минут.

Чтобы проверить, какую версию Go вы установили, введите следующую команду:

				
					
go version

				
			

Эта команда выводит номер установленной версии Go. По умолчанию устанавливается самая последняя стабильная версия Go.

В будущем для обновления Go вы можете использовать следующие команды, которые сначала обновляют Homebrew, а затем — Go. Сейчас это не требуется, поскольку вы только что установили последнюю версию:

				
					
brew update

brew upgrade golang

				
			

brew update обновляет версию 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, вы также помещаете в эту директорию свои проекты и файлы исходного кода. Это обеспечивает канонический импорт кода в ваш проект. *Канонический* импорт — это операция импорта, которая ссылается на полностью квалифицированный пакет, например github.com/the cloud provider/godo.

Вот так выглядит типичное рабочее пространство:

				
					
.

├── bin

│ ├── buffalo # command executable

│ ├── dlv # command executable

│ └── packr # command executable

└── src

 └── github.com

 └── the cloud provider

 └── godo

 ├── .git # Git reposistory metadata

 ├── account.go # package source

 ├── account_test.go # test source

 ├── ...

 ├── timestamp.go

 ├── timestamp_test.go

 └── util

 ├── droplet.go

 └── droplet_test.go

				
			

Директория по умолчанию рабочего пространства Go в версии 1.8 совпадает с домашней директорией вашего пользователя с субдиректорией go или имеет адрес $HOME/go. Если вы используете версию Go ниже 1.8, лучше всего использовать для рабочего пространства адрес $HOME/go.

Введите следующую команду для создания структуры директорий рабочего пространства Go:

				
					
mkdir -p $HOME/go/{bin,src}

				
			

Опция -p предписывает команде mkdir создать в директории все родительские элементы, даже если их еще не существует. При использовании параметров {bin,src} для команды mkdir создается набор аргументов, предписывающий ей создать директорию bin и директорию src.

Таким образом, обеспечивается размещение следующей структуры директорий:

				
					
└── $HOME

 └── go

 ├── bin

 └── src

				
			

До выпуска версии Go 1.8 обязательно было создавать локальную переменную среды с именем $GOPATH. Хотя это больше явно не требуется, создать такую переменную все равно полезно, поскольку многие сторонние инструменты зависят от ее использования.

Вы можете задать переменную $GOPATH посредством ее добавления в файл ~/.bash_profile.

Откройте файл ~/.bash_profile с помощью nano или другого предпочитаемого текстового редактора:

				
					
nano ~/.bash_profile

				
			

Чтобы задать переменную $GOPATH, добавьте в файл следующую строку:

				
					
[label ~/.bash_profile]

export GOPATH=$HOME/go

				
			

При компиляции и установке инструментов Go помещает их в директорию $GOPATH/bin. Для удобства субдиретория /bin рабочего пространства обычно добавляется в переменную PATH в файле ~/.bash_profile:

				
					
[label ~/.bash_profile]

export PATH=$PATH:$GOPATH/bin

				
			

Теперь в файле ~/.bash_profile должны быть следующие записи:

				
					
[label ~/.bash_profile]

export GOPATH=$HOME/go

export PATH=$PATH:$GOPATH/bin

				
			

Это позволит вам запускать любые компилируемые или загружаемые программы через инструменты Go в любом месте в вашей системе.

Для обновления оболочки используйте следующую команду для загрузки созданных глобальных переменных:

				
					
. ~/.bash_profile

				
			

Вы можете проверить обновление переменной $PATH, запустив команду echo и просмотрев результаты:

				
					
echo $PATH

				
			

Вы должны увидеть директорию $GOPATH/bin в своей домашней директории. Если вы вошли в систему под именем пользователя sammy, вы увидите путь /Users/sammy/go/bin.

				
					
[secondary_label Output]

<^>/Users/sammy/go/bin<^>:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

				
			

Вы создали корневую директорию рабочего пространства и задали переменную среды $GOPATH. Теперь вы сможете создавать будущие проекты со следующей структурой директорий. В этом примере предполагается, что вы используете github.com в качестве репозитория:

				
					
$GOPATH/src/<^>github.com<^>/<^>username<^>/<^>project<^>

				
			

Если вы работаете над проектом https://www.progressiverobot.com/, он помещается в следующую директорию:

				
					
$GOPATH/src/<^>github.com<^>/<^>the cloud provider<^>/<^>godo<^>

				
			

Такая структура проектов делает их доступными с помощью инструмента go get. Также она делает проекты удобнее для чтения.

Для проверки вы можете использовать команду go get для доставки библиотеки godo:

				
					
go get github.com/the cloud provider/godo

				
			

Мы можем увидеть успешную загрузку пакета godo посредством вывода директории:

				
					
ls -l $GOPATH/src/github.com/the cloud provider/godo

				
			

Результат должен выглядеть примерно так:

				
					
[secondary_label Output]

-rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md

-rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md

.

.

.

-rw-r--r-- 1 sammy staff 4893 Apr 5 15:56 vpcs.go

-rw-r--r-- 1 sammy staff 4091 Apr 5 15:56 vpcs_test.go

				
			

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

Шаг 6 — Создание простой программы

Вы настроили рабочее пространство Go и теперь можете создать простую программу “Hello, World!” Так вы убедитесь, что ваше рабочее пространство работает, и сможете лучше познакомиться с Go.

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

Откройте в домашней директории редактор nano или другой текстовый редактор командной строки и создайте новый файл:

				
					
nano hello.go

				
			

Когда текстовый файл откроется в терминале, введите код программы:

				
					
package main



import "fmt"



func main() {

	fmt.Println("Hello, World!")

}

				
			

Для выхода из nano нажмите клавиши control и х, а когда система предложит вам сохранить файл, нажмите клавишу y.

Этот код использует пакет fmt и вызывает функцию Println с Hello, World! в качестве аргумента. В результате фраза Hello, World! распечатывается на терминале при запуске программы.

После выхода из nano и возврата в оболочку запустите программу:

				
					
go run hello.go

				
			

Созданная программа hello.go выведет на терминале следующее:

				
					
[secondary_label Output]

Hello, World!

				
			

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

Заключение

Поздравляем! Вы настроили рабочее пространство программирования Go на своем локальном компьютере macOS и теперь можете начинать проект по программированию.