Введение
Go — язык программирования, родившийся из разочарования в Google. Разработчикам постоянно приходилось выбирать между эффективным языком, который долго компилировался, и простым в программировании, но неэффективным в продакшене. Go был разработан с учётом всех трёх факторов: быстрой компиляции, простоты программирования и эффективного выполнения в продакшене.
Go — это универсальный язык программирования, который можно использовать для множества различных проектов, но он особенно хорошо подходит для сетевых/распределенных систем и известен как “язык облака”. Он ориентирован на то, чтобы помочь современному программисту добиться большего с помощью мощного набора инструментов, исключает дискуссии о форматировании, делая форматирование частью спецификации языка, а также упрощает развертывание, компилируясь в один исполняемый файл. Go легко освоить, он имеет очень небольшой набор ключевых слов, что делает его отличным выбором как для начинающих, так и для опытных разработчиков.
В этом руководстве вы узнаете, как установить Go на свой локальный компьютер с Windows 10 и настроить среду программирования через командную строку.
Предпосылки
- Для работы вам потребуется устройство под управлением Windows 10 с правами администратора, подключенное к интернету.
Шаг 1 – Откройте и настройте PowerShell
Большую часть установки и настройки вы будете выполнять в командной строке, то есть неграфическом способе взаимодействия с компьютером. Иными словами, вместо нажатия кнопок вы будете вводить текст и получать от компьютера обратную связь в виде текста. Командная строка, также известная как оболочка, может помочь вам изменять и автоматизировать многие задачи, которые вы выполняете на компьютере каждый день, и является важным инструментом для разработчиков программного обеспечения.
PowerShell — это программа от Microsoft, предоставляющая интерфейс командной строки. Административные задачи выполняются путем запуска командлетов (произносится как «команды»), которые представляют собой специализированные классы программной платформы .NET, способные выполнять операции. PowerShell, открытый в августе 2016 года, теперь доступен на разных платформах, как для Windows, так и для Unix-подобных систем (включая Mac и Linux).
Чтобы найти Windows PowerShell, щелкните правой кнопкой мыши значок меню «Пуск» в левом нижнем углу экрана. Когда появится меню, нажмите «Поиск», а затем введите PowerShell в строку поиска. Когда появятся параметры, щелкните правой кнопкой мыши на Windows PowerShell в приложении «Рабочий стол». В целях данного руководства выберите «Запустить от имени администратора». Когда появится диалоговое окно с вопросом, хотите ли вы разрешить этой программе вносить изменения в ваш компьютер, нажмите «Да».
После этого вы увидите текстовый интерфейс, содержащий строку слов примерно такого вида:
Выйдите из системной папки, введя следующую команду:
cd ~
После этого вы окажетесь в корневом каталоге, например, PS C:\Users\sammy.
Для продолжения процесса установки необходимо сначала настроить права доступа через PowerShell. По умолчанию он настроен на работу в наиболее безопасном режиме, но вы можете установить несколько уровней прав доступа как администратор:
- Режим «Ограниченный» — это политика выполнения по умолчанию. В этом режиме вы не можете запускать скрипты, и PowerShell работает только как интерактивная оболочка.
- AllSigned позволяет запускать все скрипты и конфигурационные файлы, подписанные доверенным издателем, а это значит, что вы потенциально можете подвергнуть свое устройство риску запуска вредоносных скриптов, подписанных доверенным издателем.
- RemoteSigned позволяет запускать скрипты и файлы конфигурации, загруженные из Интернета и подписанные доверенными издателями, что снова делает ваше устройство уязвимым, если эти доверенные скрипты действительно являются вредоносными.
- Как только вы заметите, что файл был загружен из интернета, Unrestricted выполнит все скрипты и конфигурационные файлы, загруженные из интернета. В этом случае цифровая подпись не требуется, поэтому вы можете подвергнуть свое устройство риску выполнения неподписанных и потенциально вредоносных скриптов, загруженных из интернета.
В этом руководстве вы будете использовать политику выполнения RemoteSigned для установки разрешений для текущего пользователя. Это позволяет PowerShell принимать доверенные скрипты без наложения таких ограничений на права доступа, как при использовании неограниченной лицензии. Введите в PowerShell следующее:
Set-ExecutionPolicy -Scope CurrentUser
Затем PowerShell запросит у вас политику выполнения. Чтобы использовать RemoteSigned, введите следующее:
RemoteSigned
После нажатия клавиши ENTER вам будет предложено подтвердить изменение политики выполнения. Введите y, чтобы применить изменения. Вы можете убедиться, что это было сделано, запросив текущие разрешения на устройстве:
Get-ExecutionPolicy -List
В результате вы должны получить примерно такой результат:
Output
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine UndefinedЭто подтверждает, что текущий пользователь может запускать доверенные скрипты, загруженные из интернета. Теперь вы можете перейти к загрузке файлов, необходимых для настройки среды разработки Go.
Шаг 2 – Установите менеджер пакетов Chocolatey.
Менеджер пакетов — это набор программных инструментов, предназначенных для автоматизации процессов установки. Это включает в себя первоначальную установку, обновление и настройку программного обеспечения, а также удаление программного обеспечения при необходимости. Он хранит установленное программное обеспечение в централизованном месте и может поддерживать все пакеты программного обеспечения в системе в распространенных форматах.
Chocolatey — это менеджер пакетов командной строки, разработанный для Windows и работающий аналогично apt-get в Linux. Доступный в версии с открытым исходным кодом, Chocolatey помогает быстро устанавливать программы и инструменты. Вы будете использовать его для загрузки всего необходимого для вашей среды разработки.
Перед установкой скрипта прочтите его, чтобы убедиться, что вас устраивают изменения, которые он внесет в вашу систему. Для этого используйте платформу сценариев .NET, чтобы загрузить и отобразить скрипт Chocolatey в окне терминала.
Для начала создайте объект WebClient с именем $script, который будет передавать параметры подключения к Интернету в Internet Explorer:
$script = New-Object Net.WebClient
Ознакомьтесь с доступными параметрами, передав объект $script через символ "|" в класс Get-Member:
$script | Get-Member
Эта команда вернет все члены (свойства и методы) объекта WebClient:
. . .
[secondary_label Snippet of Output]
DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
. . .Проанализировав вывод, вы можете определить метод DownloadString, используемый для отображения скрипта и подписи в окне PowerShell. Используйте этот метод для проверки скрипта:
$script.DownloadString("https://chocolatey.org/install.ps1")
После проверки скрипта установите Chocolatey, введя в PowerShell следующую команду:
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
Командлет iwr (Invoke-WebRequest) позволяет извлекать данные из сети. Он передает скрипт командлету iex (Invoke-Expression), который выполняет содержимое скрипта и осуществляет установку для системы управления пакетами Chocolatey.
Позвольте PowerShell установить Chocolatey. После завершения установки вы можете начать установку дополнительных инструментов с помощью команды choco.
Если вам потребуется обновить Chocolatey в будущем, выполните следующую команду:
choco upgrade chocolatey
Установив менеджер пакетов, вы сможете установить и остальные необходимые компоненты для среды программирования Go.
Шаг 3 – Установите текстовый редактор Nano (необязательно)
На этом шаге вы установите nano — текстовый редактор с интерфейсом командной строки. С помощью nano вы можете писать программы непосредственно в PowerShell. Этот шаг не является обязательным, так как вы также можете использовать текстовый редактор с графическим интерфейсом, например, Блокнот. В этом руководстве рекомендуется использовать nano, поскольку он поможет вам освоиться с PowerShell.
Установите Nano с помощью Chocolatey:
choco install -y nano
Флаг -y автоматически подтверждает ваше желание запустить скрипт без запроса подтверждения.
После установки nano вы можете использовать команду nano для создания новых текстовых файлов. Позже в этом руководстве вы используете её для написания своей первой программы на Go.
Шаг 4 — Установка Go
Как и в предыдущем шаге с nano, для установки Go вы будете использовать Chocolatey:
choco install -y golang
Примечание: Поскольку слово "go" очень короткое, стало распространенным использовать "golang" при установке пакетов и при поиске в интернете статей, связанных с Go. Термин "Golang" возник из домена Go, который называется golang.org.
В процессе установки PowerShell выполнит установку Go и сгенерирует вывод в PowerShell. После завершения установки вы должны увидеть следующий результат:
Output
Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of golang was successful.
Software installed as 'msi', install location is likely default.
Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).После завершения установки вы можете убедиться, что Go установлен. Чтобы увидеть изменения, закройте и снова откройте PowerShell от имени администратора, а затем проверьте версию Go на вашем локальном компьютере:
go version
Вы получите вывод, подобный следующему:
Output
go version go1.12.1 windows/amd643.7.0После установки Go вы можете настроить рабочее пространство для своих проектов разработки.
Шаг 5 – Создайте своё рабочее пространство Go
Теперь, когда у вас установлены Chocolatey, nano и 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 repository metadata
├── account.go # package source
├── account_test.go # test source
├── ...
├── timestamp.go
├── timestamp_test.go
└── util
├── droplet.go
└── droplet_test.goНачиная с версии 1.8, каталогом по умолчанию для рабочей области Go является домашний каталог пользователя с подкаталогом go или $HOME/go. Если вы используете версию Go, предшествующую 1.8, использование расположения $HOME/go для вашей рабочей области по-прежнему считается оптимальной практикой.
Для перехода в каталог $HOME выполните следующую команду:
cd $HOME
Далее создайте структуру каталогов для вашей рабочей области Go:
mkdir go/bin, go/src
Это гарантирует наличие следующей структуры каталогов:
└── $HOME
└── go
├── bin
└── srcДо версии Go 1.8 необходимо было установить локальную переменную окружения под названием $GOPATH. Хотя сейчас это уже не обязательно, это по-прежнему считается хорошей практикой, поскольку многие сторонние инструменты всё ещё зависят от установки этой переменной.
Поскольку вы использовали Chocolatey для установки, эта переменная среды уже должна быть установлена. Вы можете проверить это с помощью следующей команды:
$env:GOPATH
Вместо имени пользователя sammy вы должны увидеть следующий вывод:
Output
C:\Users\sammy\goКогда Go компилирует и устанавливает инструменты, он помещает их в папку $GOPATH/bin. Для удобства обычно добавляют подкаталог bin вашей рабочей области в $PATH. Это можно сделать с помощью команды setx в PowerShell:
setx PATH "$($env:path);$GOPATH\bin"
Теперь вы можете запускать любую программу, скомпилированную или загруженную с помощью инструмента Go, в любом месте вашей системы.
Теперь, когда у вас создана корневая директория рабочей области и установлена переменная среды $GOPATH, вы будете создавать свои будущие проекты со следующей структурой каталогов. В этом примере предполагается, что вы используете github.com в качестве репозитория:
$GOPATH/src/github.com/username/project
Если бы вы работали над проектом https://github.com/digitalocean/godo, вы бы указали его следующим образом:
$GOPATH/src/github.com/digitalocean/godo
Такая структура проектов сделает их доступными с помощью инструмента «Загрузить». Это также улучшит читаемость кода в дальнейшем.
Вы можете убедиться в этом, используя команду `go get` для загрузки библиотеки godo:
go get github.com/digitalocean/godo
Примечание: Если у вас не установлен Git, Windows откроет диалоговое окно с вопросом, хотите ли вы его установить. Нажмите «Да», чтобы продолжить, и следуйте инструкциям по установке.
Выполнив команду `listen` в каталоге, вы увидите, что пакет godo успешно загружен:
ls $env:GOPATH/src/github.com/digitalocean/godo
Вы получите примерно такой вывод:
Output
Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/10/2019 2:59 PM util
-a---- 4/10/2019 2:59 PM 9 .gitignore
-a---- 4/10/2019 2:59 PM 69 .travis.yml
-a---- 4/10/2019 2:59 PM 1592 account.go
-a---- 4/10/2019 2:59 PM 1679 account_test.go
-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
.
.
.
-a---- 4/10/2019 2:59 PM 5076 vpcs.go
-a---- 4/10/2019 2:59 PM 4309 vpcs_test.goНа этом этапе вы создали рабочую область Go и настроили необходимые переменные среды. Далее вы протестируете рабочую область с помощью некоторого кода.
Шаг 6 – Создайте простое приложение
Теперь, когда у вас настроено рабочее пространство Go, создайте простую программу «Hello, World!». Это гарантирует правильную настройку вашего рабочего пространства, а также даст вам возможность лучше познакомиться с Go. Поскольку вы создаёте исходный файл Go, а не реальный проект, вам не обязательно находиться в рабочем пространстве, чтобы это сделать.
В своей домашней директории откройте текстовый редактор командной строки, например nano, и создайте новый файл:
nano hello.go
После открытия текстового файла в nano введите название вашей программы:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}Выйдите из nano, нажав CTRL и X. Когда появится запрос на сохранение файла, нажмите Y, а затем ENTER.
Этот код использует пакет fmt и вызывает функцию Println с аргументом "Hello, World!". В результате при запуске программы в терминал выводится фраза "Hello, World!".
После выхода из nano и возвращения в командную оболочку запустите программу:
go run hello.go
Созданная вами программа hello.go должна выдавать следующий результат в PowerShell:
Output
Hello, World!На этом этапе вы использовали простое приложение, чтобы убедиться в правильности настройки вашей рабочей области Go.
Результат
Поздравляем! На этом этапе вы настроили рабочее пространство для программирования на Go на своем локальном компьютере с Windows и можете начать работу над проектом!










