Зміст

GO

Install

Linux

mise use --global go@latest

This is best way.

Windows

use winget. But my antivirus blocks compiled files, even “Hello World”, so this is just not working.

Environment variables

GOROOT - це шлях, де встановлено сам Go SDK (компілятор, стандартна бібліотека та інструменти).

GOPATH - це твій робочий простір (workspace). Сюди Go завантажує сторонні залежності, і тут зберігаються скомпільовані бінарні файли твоїх або завантажених програм.

Зараз ці змінні вже не треба задавати в конфігу. Можна подивитися командою

go env

Щоб все гарно працювало, в PATH має бути присутнім два каталоги:

$GOROOT/bin
$GOPATH/bin

це відбувається автоматично (mise, winget), але можна перевірити.

Налаштування VS Code workspace

на сервері створити каталог, в якому будуть складатися всі проєкти на Го:

mkdir -pv ~/Projects/go
cd ~/Projects/go

створити перший проєкт:

mkdir hello && cd hello
go mod init hello

зверни увагу, що тут назва каталогу проєкту та назва модуля (go mod init) збігаються. Це необов'язково, але зручно. Також, якщо модуль буде використовуватися в інших, можна прописати шлях на гітхабі:

go mod init github.com/username/<dir-name>

якщо такий модуль завантажити на відповідний гітхаб, то в інших проєктах можна його підтягнути:

go get github.com/username/<dir-name>

Далі потрібно переконатися, що в VS Code встановлені плагіни golang.go, ms-vscode-remote.remote-ssh

Підключитися до віддаленого хосту: викликати панель команд (Ctrl+Shift+P) → “Remote-SSH: Connect to Host…” та обрати сервер із списку.

Відкрити перший проєкт за допомогою звичайного File → Open Folder…

Наступні проєкти додавати через File → Add Folder to Workspace…

Обов'язково зберегти workspace: File → Save Workspace As… та зберегти у ~/Projects/go/my.code-workspace (можна іншу назву файлу).

Відредагувати цей файл my.code-workspace, приблизно так:

{
   "folders" : [
      {
         "path" : "hello"
      },
      {
         "path" : "second"
      }
   ],
   "launch" : {
      "configurations" : [
         {
            "cwd" : "${fileWorkspaceFolder}",
            "mode" : "auto",
            "name" : "Запустити поточний файл",
            "program" : "${fileDirname}",
            "request" : "launch",
            "type" : "go"
         }
      ],
      "version" : "0.2.0"
   },
   "settings" : {},
   "tasks" : {
      "tasks" : [
         {
            "command" : "go run .",
            "group" : {
               "isDefault" : true,
               "kind" : "build"
            },
            "label" : "Go Run Поточний Проєкт",
            "options" : {
               "cwd" : "${fileDirname}"
            },
            "presentation" : {
               "clear" : true,
               "echo" : false,
               "focus" : true,
               "panel" : "dedicated",
               "reveal" : "always"
            },
            "type" : "shell"
         }
      ],
      "version" : "2.0.0"
   }
}

Тепер для запуску проєкту потрібно відкрити в VS Code файл main.go в будь-якому проєкті та натиснути Ctrl+Shift+B (або Terminal → Run Build Task…) і проєкт запуститься і виведе у вкладку терміналу внизу