Go — это язык программирования, созданный Google в результате разочарования в других языках. Разработчикам постоянно приходилось выбирать между эффективным языком программирования с очень длительным временем компиляции и удобным языком программирования, не отличающимся эффективностью в производственной среде. Язык Go был разработан, чтобы одновременно обеспечить все три преимущества: высокую скорость компиляции, удобство программирования и эффективное исполнение в производственной среде.
Go — это универсальный язык программирования, который можно использовать для различных проектов программирования. Он особенно хорошо подходит для сетевых программ/распределенных систем и заработал себе репутацию «языка облака». Он дает современным программистам больше возможностей благодаря мощному набору инструментов, позволяет устранить разногласия по поводу форматирования, делая формат частью спецификации языка, а также упрощает развертывание за счет компиляции в единый двоичный файл. Язык Go очень простой в обучении и имеет небольшой набор ключевых слов, что делает его идеальным вариантом как для начинающих, так и для опытных программистов.
В этом руководстве вы научитесь устанавливать Go на локальном компьютере macOS и настраивать среду программирования через командную строку.
Вам потребуется компьютер macOS с административным доступом и подключением к Интернету.
Основную часть установки и настройки мы будем выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь в текстовом формате. Командная строка, также называемая «оболочка», помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах. Это необходимый и очень важный инструмент для разработчиков программного обеспечения.
Терминал macOS — это приложение, которое вы можете использовать для доступа к интерфейсу командной строки. Вы можете найти его в Finder, как и любое другое приложение. Для этого перейдите в папку «Приложения», а затем в папку «Утилиты». В этой папке дважды нажмите на приложение Terminal, чтобы открыть его как любое другое приложение. Также вы можете использовать поиск Spotlight, удерживая клавиши CMD
и ПРОБЕЛ
и вводя Terminal в появляющемся поле.
Существует множество разнообразных команд терминала, с помощью которых вы можете выполнять множество различных задач. Статья [Введение в терминал Linux] (https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal) поможет вам лучше сориентироваться в работе с терминалом Linux, который похож на терминал macOS.
Вы открыли терминал и теперь вы можете загрузить и установить пакет инструментов для разработчиков Xcode, который вам потребуется для установки Go.
Xcode — это интегрированная среда разработки (IDE), состоящая из различных инструментов разработки программного обеспечения для macOS. Вы можете проверить установку Xcode, введя в окне терминала следующую команду:
- xcode-select -p
Следующие результаты означают, что среда разработки Xcode установлена:
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.
Хотя терминал 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
Если никакие обновления не требуются, на экране терминала появится следующее:
OutputYour system is ready to brew.
В ином случае может быть выведено предупреждение о необходимости запуска другой команды, например brew update
для проверки актуальности установленной версии Homebrew.
После завершения установки Homebrew вы можете переходить к установке Go.
Вы можете использовать Homebrew для поиска всех доступных пакетов с помощью команды brew search
. В этом руководстве мы будем искать пакеты или модули, связанные с Go:
- brew search golang
Примечание. В этом руководстве не используется команда brew search go
, поскольку она возвращает слишком много результатов. Поскольку go
— очень короткое слово, и ему может соответствовать много пакетов, в качестве поискового запроса обычно используют golang
. Эта практика также обычно применяется при поиске статей по Go в Интернете. Термин Golang происходит от названия домена Go, а именно golang.org
.
Терминал выведет список модулей, которые вы можете установить:
Outputgolang 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.
Вы установили Xcode, Homebrew и Go и теперь можете переходить к созданию рабочего пространства для программирования.
На корневом уровне рабочего пространства Go имеются две директории:
src
: это директория с исходными файлами Go. Исходный файл или файл исходного кода — это файл, который вы пишете на языке программирования Go. Компилятор Go использует исходные файлы для создания исполняемого двоичного файла.bin
: директория, содержащая исполняемые файлы, которые были созданы и установлены инструментами Go. Исполняемые файлы — это двоичные файлы, которые запускаются в системе и выполняют задачи. Обычно это программы, скомпилированные из вашего исходного кода или из другого загруженного исходного кода Go.Субдиректория src
может содержать несколько репозиториев контроля версий (например, Git, Mercurial и Bazaar). При импорте сторонних двоичных файлов вашей программой вы увидите такие директории, как github.com
или golang.org
. Если вы используете репозиторий кода, например github.com
, вы также помещаете в эту директорию свои проекты и файлы исходного кода. Это обеспечивает канонический импорт кода в ваш проект. Канонический импорт — это операция импорта, которая ссылается на полностью квалифицированный пакет, например github.com/digitalocean/godo
.
Вот так выглядит типичное рабочее пространство:
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── digitalocean
└── 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
, добавьте в файл следующую строку:
export GOPATH=$HOME/go
При компиляции и установке инструментов Go помещает их в директорию $GOPATH/bin
. Для удобства субдиретория /bin
рабочего пространства обычно добавляется в переменную PATH
в файле ~/.bash_profile
:
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
в своей домашней директории. Если вы вошли в систему под именем пользователя sammy
, вы увидите путь /Users/sammy/go/bin
.
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://github.com/digitalocean/godo, он помещается в следующую директорию:
$GOPATH/src/github.com/digitalocean/godo
Такая структура проектов делает их доступными с помощью инструмента go get
. Также она делает проекты удобнее для чтения.
Для проверки вы можете использовать команду go get
для доставки библиотеки godo
:
- go get github.com/digitalocean/godo
Мы можем увидеть успешную загрузку пакета godo
посредством вывода директории:
- ls -l $GOPATH/src/github.com/digitalocean/godo
Результат должен выглядеть примерно так:
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 и настроили необходимые переменные среды. На следующем шаге мы протестируем рабочее пространство, запустив в нем код.
Вы настроили рабочее пространство 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
выведет на терминале следующее:
OutputHello, World!
На этом шаге вы использовали простую программу для подтверждения правильности настройки рабочего пространства Go.
Поздравляем! Вы настроили рабочее пространство программирования Go на своем локальном компьютере macOS и теперь можете начинать проект по программированию.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!