Go — это язык программирования, созданный Google в результате разочарования в других языках. Разработчикам постоянно приходилось выбирать между эффективным языком программирования с очень длительным временем компиляции и удобным языком программирования, не отличающимся эффективностью в производственной среде. Язык Go был разработан, чтобы одновременно обеспечить все три преимущества: высокую скорость компиляции, удобство программирования и эффективное исполнение в производственной среде.
Go — это универсальный язык программирования, который можно использовать для самых разнообразных проектов. Он особенно хорошо подходит для сетевых программ и распределенных систем и заработал себе репутацию «языка облака». Он дает современным программистам больше возможностей с мощным набором инструментов, позволяет устранить разногласия по поводу форматирования, делая формат частью спецификации языка, а также упрощает развертывание за счет компиляции в единый двоичный файл. Язык Go очень прост в изучении и имеет небольшой набор ключевых слов, что делает его идеальным вариантом как для начинающих, так и для опытных программистов.
В этом обучающем руководстве вы научитесь устанавливать Go на локальном компьютере Windows 10 и настраивать среду программирования через командную строку.
Вам потребуется компьютер Windows 10 с административным доступом и подключением к Интернету.
Основную часть установки и настройки вы будете выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь также в текстовом формате. Командная строка, также называемая оболочка, помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах каждый день. Это необходимый и очень важный инструмент для разработчиков программного обеспечения.
PowerShell — это программа Microsoft, обеспечивающая оболочку интерфейса командной строки. Административные задачи выполняются посредством запуска cmdlets или командлетов, которые представляют собой специализированные классы программной структуры . NET, предназначенные для выполнения операций. Исходный код программы PowerShell был раскрыт в августе 2016 г., и теперь она доступна для разных платформ Windows и UNIX (включая Mac и Linux).
Чтобы найти Windows PowerShell, щелкните правой кнопкой мыши значок меню Пуск в левом нижнем углу экрана вашего компьютера. Когда появится меню, нажмите Search (Найти) и введите PowerShell
в панель поиска. В списке вариантов щелкните правой кнопкой мыши приложение Windows PowerShell. Для целей настоящего обучающего руководства нажмите Run as Administrator (Запуск от имени администратора). Когда откроется диалоговое окно Разрешить этому приложению вносить изменения на вашем устройстве?, нажмите Да.
После этого вы увидите текстовый интерфейс со строкой следующего вида:
Выйдите из системной папки с помощью следующей команды:
- cd ~
Теперь вы находитесь в домашнем каталоге, например, PS C:\Users\sammy
.
Чтобы продолжить установку, вам нужно настроить разрешения через PowerShell. По умолчанию система настроена для работы в самом безопасном режиме, однако в качестве администратора вы можете настроить несколько уровней разрешений:
В этом обучающем руководстве мы используем политику исполнения RemoteSigned
для установки разрешений для текущего пользователя. Она позволяет PowerShell принимать скрипты из доверенных источников, но не делает уровень разрешений таким широким, как при использовании политики Unrestricted
. Введите в 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.
Диспетчер пакетов — это набор программных инструментов, предназначенный для автоматизации процессов установки. Он включает процесс первоначальной установки, обновления и настройки программного обеспечения, а также удаления программного обеспечения в случае необходимости. Диспетчер пакетов обеспечивает централизованное хранение установочных файлов программного обеспечения и может обслуживать все программные пакеты в системе в распространенных форматах.
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.
На этом шаге вы выполните установку текстового редактора nano с интерфейсом командной строки. Вы можете использовать nano для написания программ в PowerShell. Это необязательно, поскольку вы также можете использовать Notepad или другой текстовый редактор с графическим интерфейсом. В этом обучающем модуле мы рекомендуем использовать nano, поскольку это поможет вам привыкнуть к работе с PowerShell.
Используйте Chocolatey для установки nano:
- choco install -y nano
Флаг -y
автоматически подтверждает, что вы хотите запустить скрипт, не получая запросов подтверждения.
После установки nano вы сможете использовать команду nano
для создания новых текстовых файлов. Вы сможете использовать ее на последующих этапах этого обучающего модуля для написания вашей первой программы на Go.
Как и в случае с nano, вы будете использовать Chocolatey для установки Go:
- choco install -y golang
Примечание: поскольку go — очень короткое слово, обычно в качестве термина при установке пакетов и при поиске в Интернете статей вместо него обычно используется термин golang
. Термин Golang происходит от названия домена Go, а именно golang.org
.
Теперь PowerShell выполнит установку Go и будет отображать ход выполнения в PowerShell. После завершения установки вы должны увидеть следующее:
OutputEnvironment 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
Результаты будут выглядеть примерно так:
Outputgo version go1.12.1 windows/amd643.7.0
После установки 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
Директория по умолчанию рабочего пространства Go в версии 1.8 совпадает с домашним каталогом вашего пользователя с подкаталогом 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
:
OutputC:\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
. Также она делает проекты удобнее для чтения.
Для проверки вы можете использовать команду go get
для доставки библиотеки godo
:
- go get github.com/digitalocean/godo
Примечание: если вы не установили git
, Windows откроет диалоговое окно с предложением выполнить установку. Нажмите Да, чтобы продолжить, и следуйте указаниям по установке.
Можно проверить успешную загрузку пакета 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 и настроили необходимые переменные среды. На следующем шаге мы протестируем рабочее пространство, запустив в нем код.
Мы настроили рабочее пространство 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 следующее:
OutputHello, World!
На этом шаге вы использовали простую программу для подтверждения правильности настройки рабочего пространства Go.
Поздравляем! Вы настроили рабочее пространство программирования Go на своем локальном компьютере Windows и теперь можете начинать проект по программированию.
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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Как всегда в подобных мануалах ничего не работает. На шаге go get github.com/digitalocean/godo выдает ошибку. go: go.mod file not found in current directory or any parent directory. ‘go get’ is no longer supported outside a module. To build and install a command, use ‘go install’ with a version, like ‘go install example.com/cmd@latest’ For more information, see https://golang.org/doc/go-get-install-deprecatiot
В общем как обычно