📦 Packages & Modules в Go
В этом уроке ты узнаешь, как в Go устроены packages и modules, зачем они нужны и как работать с ними в реальных проектах.
🧩 Что такое Package
В Go package - это основной способ организации кода. Каждый файл Go начинается с указания пакета:
package mypackage
Обычно одна директория = один пакет.
Зачем нужны пакеты?
- Делят проект на логические части
- Улучшают читаемость
- Упрощают поддержку
- Позволяют переиспользовать код
Пакет должен выполнять одну конкретную задачу, например: - разбор аргументов, - обработка HTTP-запросов, - логирование, - работа с графикой.
📥 Импорт пакетов
Импорт выглядит так:
import "fmt"
Несколько импортов:
import (
"fmt"
"net/http"
)
Переименование импорта
import server "net/http"
Теперь можно вызывать так:
server.ListenAndServe()
Импорт через точку
import . "fmt"
Теперь можно писать:
Println("Hello")
Использовать dot-import рекомендовано только для тестов или маленьких примеров.
📦 Что такое Module
Module - это набор пакетов, объединённых в один проект и
управляемых через Go CLI.
Модуль определяется файлом go.mod в корне проекта.
Пример:
module github.com/user/project
go 1.22
require (
github.com/sirupsen/logrus v1.9.3
)
Файл go.mod содержит: - имя модуля, - версию Go, - список
зависимостей, - replace-директивы.
🛠 Работа с модулями (Go CLI)
Создать новый модуль:
go mod init myproject
Добавить зависимость:
go get github.com/gin-gonic/gin
Обновить зависимости:
go get -u
Очистить неиспользуемые зависимости:
go mod tidy
🌐 Откуда загружаются модули?
Go может скачивать зависимости из: - GitHub, - Go Proxy (registry), -
частных Git-репозиториев, - локальных директорий (через replace).
✅ Итоги
- Packages - основа структуры Go-кода.
- Modules - способ управления проектами и зависимостями.
- Каждый проект Go содержит файл
go.mod. - Хороший пакет выполняет одну задачу и делает её качественно.