Використання Go (Golang)
Огляд
Go (часто — Golang) — це статично типізована компільована мова програмування з відкритим вихідним кодом, створена Google. Вона вирізняється лаконічним синтаксисом, надшвидкою компіляцією, потужною підтримкою паралелізму (через легковісні goroutine та механізм channel для комунікації) і ефективним вбудованим збирачем сміття. Go чудово підходить для побудови високопродуктивних мережевих сервісів, розподілених систем, мікросервісів та CLI-інструментів, і є одним із найпопулярніших виборів для хмарних та бекенд-розробників.
Підтримка Go у ServBay
ServBay — це інтегроване локальне середовище для веб-розробки, яке підтримує macOS та Windows. Воно має глибоку інтеграцію з Go, дозволяючи зручно встановлювати, керувати і перемикати між різними версіями Go. З ServBay більше не потрібно вручну налаштовувати змінні середовища типу GOROOT, GOPATH — середовище йде готове до роботи.
У ServBay доступний повний інструментарій Go, підтримуються всі основні версії — від історичних до найсвіжіших стабільних. Ви завжди зможете підібрати оптимальний варіант для вашого проекту:
- Go 1.11
- Go 1.12
- Go 1.13
- Go 1.14
- Go 1.15
- Go 1.16
- Go 1.17
- Go 1.18
- Go 1.19
- Go 1.20
- Go 1.21
- Go 1.22
- Go 1.23
- Go 1.24 (та потенційно новіші у майбутніх оновленнях ServBay)
Підтримка Go Modules
У середовищі ServBay за замовчуванням увімкнено і рекомендовано використовувати Go Modules для керування залежностями. Це стандартний спосіб, який з версії Go 1.11 підтримується офіційно. У терміналі ServBay ви можете напряму виконувати команди go mod (go mod init, go get, go mod tidy) для роботи з залежностями, не переймаючись про $GOPATH.
Передумови
- ServBay вже встановлений і запущений на вашому macOS.
- Ви маєте базові знання програмування на Go.
- Вмієте користуватись терміналом та основними командними операціями.
Встановлення Go
Інсталювати Go у ServBay через графічний інтерфейс неймовірно просто:
- Запустіть додаток ServBay.
- У лівій панелі навігації оберіть
Пакети. - У списку виберіть розділ
Go. - Розгорніть список Go — побачите всі доступні для встановлення версії.
- Виберіть бажану версію Go (найчастіше рекомендується останню стабільну, напр., Go 1.24). Натисніть на кнопку
Встановитибіля потрібної версії. - ServBay самостійно завантажить і виконає інсталяцію. Тривалість — залежить від вашого інтернету.

Після завершення статус зміниться на “Встановлено”. Ви також можете встановити кілька версій і за потреби перемикатися між ними.
Робота з Go
Після успішного встановлення Go ви можете користуватись повним набором команд у терміналі операційної системи.
Щоб перевірити, чи Go встановлений і яка версія активна, виконайте:
bash
go version1
У терміналі з’явиться щось на зразок:
go version go1.24.1 darwin/arm641
Створення та запуск простого Go Web-додатку
Давайте реалізуємо простий HTTP-сервер на Go та запустимо його через ServBay.
Створіть папку проекту: Рекомендовано завести окрему директорію у корені сайтів ServBay, напр.
/Applications/ServBay/www/go-servbay-demo.bashcd /Applications/ServBay/www mkdir go-servbay-demo cd go-servbay-demo1
2
3Ініціалізуйте Go Modules: Із кореня проекту (
go-servbay-demo) виконайтеgo mod init, підставивши ім’я проекту або унікальний ідентифікатор.bashgo mod init go-servbay-demo1Виконається створення
go.mod— цей файл буде містити всі залежності проекту.Напишіть Go-код: Створіть файл
main.goіз наступним вмістом:gopackage main import ( "fmt" "log" "net/http" "os" ) func handler(w http.ResponseWriter, r *http.Request) { hostname, _ := os.Hostname() fmt.Fprintf(w, "Hello from Go on ServBay!\nHostname: %s\nPath: %s\n", hostname, r.URL.Path) } func main() { http.HandleFunc("/", handler) port := "8080" // Визначення порту для прослуховування log.Printf("Go web server starting on port %s...", port) log.Printf("Access it at http://localhost:%s", port) // Запуск HTTP-сервера err := http.ListenAndServe(":"+port, nil) if err != nil { log.Fatalf("Error starting server: %s\n", err) } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27Код створює простий HTTP-сервер на порту 8080 та відповідає на будь-які запити текстом із інформацією про хост та шлях.
Запустіть Go-додаток: Перебуваючи у папці проекту (
/Applications/ServBay/www/go-servbay-demo), запустіть:bashgo run main.go1Якщо все гаразд — у терміналі з’являться повідомлення про запуск сервера:
2024/05/20 15:00:00 Go web server starting on port 8080... 2024/05/20 15:00:00 Access it at http://localhost:80801
2Перейдіть до додатку: Відкрийте браузер і введіть
http://localhost:8080. Ви побачите текст на кшталт "Hello from Go on ServBay! Hostname: your-mac-hostname Path: /".
Налаштування зворотного проксі у ServBay (рекомендовано)
Хоча ви можете звертатись до додатку напряму через localhost:8080, для зручності розробки краще використовувати зрозумілу локальну адресу (наприклад, go-app.servbay.demo) і зворотний проксі через веб-сервер (Caddy, Apache, Nginx). Це спрощує доступ через стандартний HTTP/HTTPS, дає додаткові можливості (HTTPS, інтеграція з іншими сервісами).
- Створіть сайт у ServBay:
- Відкрийте GUI ServBay і перейдіть у розділ
Сайти. - Натисніть
Додати сайт. - Домен: зазначте бажане локальне ім’я, напр.,
go-app.servbay.demo. - Тип сайту: виберіть “Зворотній проксі”.
- IP-адреса: вкажіть
127.0.0.1. - Порт: введіть
8080.
- Відкрийте GUI ServBay і перейдіть у розділ

Збережіть і перезавантажте web-сервер: Після змін — збережіть конфігурацію і перезапустіть/перезавантажте відповідний веб-сервер (Caddy чи Nginx).
Відкрийте додаток за доменом: Тепер можна звертатись до Go додатку через
https://go-app.servbay.demoу браузері — веб-сервер ServBay прозоро передає запити вашій Go програмі.

Керування версіями Go
ServBay надає дуже простий спосіб керування й перемикання версій Go.
- Перемикання версії: Відкрийте у GUI ServBay розділ
Пакети->Go. У лівому меню знайдітьНалаштування— тут можна встановити одну із інстальованих версій Go як “за замовчуванням”. - Перевірка: Перезапустіть термінал і виконайте
go version, щоб переконатись — зазначена версія активна.
Керування проектними версіями Go через .servbay.config
Окрім глобального перемикання Go, ServBay дозволяє більш тонко керувати версіями Go для кожного проекту окремо — за допомогою файлу .servbay.config у корені проекту.
Як це працює:
Коли ви у інтегрованому терміналі ServBay виконуєте cd у директорію, що містить .servbay.config, система автоматично знаходить та читає цей файл. На основі вказаного GO_VERSION у сесії термінала тимчасово перемикається Go на відповідну версію.
Формат файлу:
.servbay.config — це простий текстовий файл з ключами та значеннями. Для призначення версії Go достатньо додати рядок:
ini
# Приклад .servbay.config
# Цей проект використовує Go 1.22
GO_VERSION=1.22
# Можна визначити й версії інших інструментів
# PHP_VERSION=8.3
# NODE_VERSION=20
# PYTHON_VERSION=3.11
# ... інші можливі налаштування ...
# GOPROXY=https://goproxy.cn,direct1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Переваги:
- Автоматичне перемикання: Не потрібно вручну змінювати версію Go — достатньо перейти у потрібний проект.
- Ізоляція: Кожен проект працює у власному середовищі та версіях, жодних конфліктів.
- Командна співпраця: Зберігайте
.servbay.configу git — всі члени команди відразу отримають однакове середовище Go.
Сценарій використання:
Уявімо, у вас два проекти:
project-aвимагає Go 1.12project-bвикористовує Go 1.22
У кожному корені ви створюєте власний .servbay.config:
/Applications/ServBay/www/project-a/.servbay.config:iniGO_VERSION=1.121/Applications/ServBay/www/project-b/.servbay.config:iniGO_VERSION=1.221
Після переходу у відповідну папку (cd /Applications/ServBay/www/project-a) і запуску go version побачите Go 1.12.x, при переході у project-b — Go 1.22.x.

Увага: .servbay.config керує базовою версією Go у ServBay. Для залежностей у проекті рекомендується використовувати Go Modules (go.mod).
Часті питання (FAQ)
Q: “command not found” при запуску
goу терміналі ServBay?A: Перевірте, чи коректно налаштовано змінну PATH для ServBay. Переконайтесь, що у GUI ServBay у розділі “Пакети -> Go” інстальовано й активовано хоча б одну версію Go.
Q: Як оновити Go до найновішої версії в ServBay?
A: Слідкуйте за оновленнями у “Пакети -> Go”. Коли у ServBay з’явиться нова версія Go, просто натисніть “Встановити”, а потім перемкніть її як за замовчуванням через GUI.
Q: Проблеми з Go Modules — повільне завантаження залежностей або мережеві помилки?
A: Go Modules за замовчуванням використовує
proxy.golang.org. Якщо ви у Китаї чи іншій країні з обмеженим інтернетом — використайте налаштуванняGOPROXY(наприклад,https://goproxy.cnчиhttps://goproxy.io). Це можна задати у глобальних налаштуваннях ServBay або у.servbay.config(GOPROXY=https://goproxy.cn,direct).Q: "address already in use" — порт зайнятий при запуску Go-додатку?
A: Це означає, що обраний порт (наприклад, 8080) вже використовується іншим процесом. Можна: а) змінити порт у коді, або б) знайти й завершити зайнятий процес. На macOS скористайтесь командою
lsof -i :<номер_порту>, наприкладlsof -i :8080, і потімkill <PID>.Q: Яка різниця між
.servbay.configта глобальним перемиканням Go? Що краще?A: Глобальне перемикання (через GUI) змінює версію Go для всієї системи.
.servbay.config— механізм для проектів: лише у обраній папці Go тимчасово перемикається на зазначену версію. Радимо використовувати.servbay.configдля ізоляції проєктної версії Go — це сприяє стабільності, зручності та командній роботі. Глобальне перемикання — коли потрібно задати основну/найчастіше використувану версію.
Підсумок
ServBay — це сучасне інтуїтивне середовище для розробки на Go (Golang) у macOS. Тут ви легко встановите і керуватимете різними версіями Go, а завдяки .servbay.config — проектно контролюватимете варіанти середовища. Використовуйте Go Modules для гнучкого керування залежностями, а вбудовані веб-сервери ServBay — для зворотного проксі й швидкого тестування додатків. ServBay мінімізує труднощі із налаштуванням середовища, залишаючи вам максимум часу і ресурсів для створення якісного Go-коду та ефективної роботи.
