Go:
Початок нового проекту

Як це зробити:

Спочатку, переконайтеся, що у вас встановлено Go, виконавши команду go version у вашому терміналі. Ви повинні побачити версію Go, яку ви встановили, у виводі. Далі, давайте запустимо новий проєкт. Перейдіть у ваш робочий простір і запустіть:

mkdir hello-world
cd hello-world

Це створює і переносить вас у новий каталог для вашого проєкту. Тепер ініціалізуйте модуль:

go mod init example.com/hello-world

Замініть example.com/hello-world на ваш шлях до модуля. Ця команда створює файл go.mod у вашому каталозі, сигналізуючи про початок нового Go модуля. Ось як може виглядати go.mod:

module example.com/hello-world

go 1.18

go.mod відслідковує залежності вашого проєкту. Тепер, створіть файл main.go:

touch main.go

Відкрийте main.go у вашому улюбленому редакторі та додайте наступний код, щоб надрукувати “Hello, World!”:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Щоб запустити вашу програму, поверніться до терміналу та виконайте:

go run main.go

Ви повинні побачити:

Hello, World!

Вітаємо! Ви щойно розпочали новий проєкт Go та запустили свою першу програму Go.

Поглиблений розгляд

Ініціатива введення модулів як стандарту для управління залежностями в Go була значним зрушенням в екосистемі Go, офіційно прийнятим у Go 1.11. До модулів розробники Go покладалися на змінну середовища GOPATH для управління залежностями, що було менш інтуїтивно зрозумілим і часто призводило до інфамного “пекла залежностей”.

Модулі забезпечують ізольований спосіб управління залежностями проєктів, версіонуванням та є кроком до зроблення проєктів Go більш самодостатніми і портативними. Кожен модуль вказує свої залежності, які Go відстежує у файлі go.mod, спрощуючи управління залежностями в різних середовищах та етапах розробки.

Однак, слід зазначити, що, хоча модулі Go зараз є стандартом, деякі старі проєкти можуть досі використовувати GOPATH. Для більшості нових проєктів модулі пропонують більш просту та ефективну систему управління, але розуміння GOPATH може бути корисним для підтримки або внеску до старіших кодових баз Go.

Що стосується альтернатив, хоча модулі Go тепер є де-факто стандартом, спільнота Go експериментувала з іншими інструментами управління залежностями, як-от dep, у минулому. Однак, ці більшою мірою були витіснені офіційною підтримкою модулів, інтегрованих у інструментарій Go.