Назад к урокам

Пакеты и Модули в GO

Разбор двух ключевых концепций языка Go — packages и modules. В этом уроке мы изучим, как организуется код внутри проекта, что такое модуль, как управлять зависимостями и как правильно структурировать Go-приложение.

Начинающий8 min

📦 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.
  • Хороший пакет выполняет одну задачу и делает её качественно.
Пакеты и Модули в GO | WebSchool