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.