24.02.2025
4 хвилин читання

Посібник зі створення модульних систем на Go: Основні Принципи

создание модульных систем на go

Створення модульних систем у Golang – це ключ до спрощення розробки та підтримки великих додатків. Модульний підхід дає змогу розділити проєкт на незалежні частини, кожна з яких відповідає за певну функціональність. У цій статті ми розберемо, що таке ініціалізація модулів Go, як керувати залежностями та організувати структуру коду так, щоб працювати було простіше й ефективніше. Ну, а вивчити цю мову докладніше ви зможете на курсах FoxmindEd.

🚀 Менторинг з Golang від FoxmindEd! 🚀 Працюйте над реальними завданнями, отримуйте досвід та ставайте Golang розробником разом з FoxmindEd! 💡
Дізнатись більше

Що таке модульні системи в Go?

Модульна система – це спосіб організації коду, за якого проєкт розбивається на незалежні або слабо пов’язані модулі. У Go, починаючи з версії 1.11, з’явилася вбудована підтримка модулів, відома як Go Modules. Вони замінили стару систему управління залежностями (GOPATH) і зробили процес роботи із зовнішніми бібліотеками значно простішим.

Навіщо потрібні модульні системи?

Переймалися питанням, чому ваш проєкт перетворюється на спагеті-код, де зміни однієї функції ламають увесь застосунок? Ось тут на допомогу приходять модулі:

  • Ізоляція коду. Кожен модуль вирішує тільки своє завдання.
  • Керування залежностями. Забудьте про вічні конфлікти версій бібліотек.
  • Повторне використання. Модуль можна використовувати в інших проєктах, просто імпортувавши його.

Основні терміни та концепції

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

Ініціалізація модулів у Go

Робота з модулями в Go починається з їхньої ініціалізації.

Створення Go-модуля

Для цього потрібно виконати такі кроки:

  1. Відкрийте термінал у кореневій папці вашого проєкту.

Виконайте команду:

go mod init my-module  

Тут my-module – ім’я вашого модуля.

  1. Перевірте файл go.mod, який матиме приблизно такий вигляд:
module my-module
go 1.20

Керування залежностями

Додавати залежності просто, потрібно імпортувати бібліотеку в коді.

Виконайте:

go mod tidy  

Ця команда підтягне відсутні пакети і прибере невикористані.

До речі, намагайтеся фіксувати версії залежностей, щоб уникнути раптових проблем з оновленнями.

Структура та компоненти модульного додатка

Як казав один мудрий кодер: “Хороша структура проекту – це вже півсправи”. У Golang вона відіграє ключову роль, даючи змогу легко знаходити потрібні файли, додавати нові модулі та тестувати окремі компоненти.

Рекомендована структура проєкту

Стандартна структура модульного додатка на Go має такий вигляд:

my-module/  

├── cmd/                # Entry point for the application  

├── internal/           # Internal packages (not intended for public use)  

├── pkg/                # Publicly available packages  

├── go.mod              # Module descriptor file  

└── go.sum              # Dependency checksum file  

Чому це важливо?

  • Прозорість. Нові учасники команди швидко розберуться, де шукати потрібні файли.
  • Поділ відповідальності. Логіка додатка, внутрішні пакети і зовнішні інтерфейси знаходяться в окремих місцях.
  • Повторне використання. Пакети з pkg/ можуть бути імпортовані в інших проектах, що прискорює розробку.

Якщо ваш застосунок невеликий, ви можете обійтися мінімальною структурою: тільки папка для коду і файл go.mod.

Імпорт і використання пакетів

Якщо ви створили модуль, наприклад my-module/pkg/util, імпорт матиме такий вигляд:

import "my-module/pkg/util"

Не забувайте, що внутрішні пакети (internal) не можна імпортувати ззовні.

Компіляція та збирання модульного додатка

Коли структура проєкту готова, час подумати про збірку.

Як компілювати додатки з модулями

Скомпілювати додаток просто:

go build  

За замовчуванням, Go створює бінарний файл у поточній директорії. Якщо ви хочете вказати інше місце для збірки, використовуйте прапор -o:

go build -o ./bin/myapp

Налаштування оточення

Для розробки корисно налаштувати змінні оточення, такі як GO111MODULE=on. Це гарантує, що ви завжди використовуєте Go Modules. Налаштоване оточення прискорює розробку, допомагає уникнути проблем із залежностями та полегшує деплой.

Підпишіться на наш Ютуб-канал! Корисні відео для програмістів чекають на вас! YouTube
Оберіть свій курс програмування! Шлях до кар’єри програміста починається тут! Подивитись

Практичний посібник: створення простого модульного додатка

Давайте створимо маленький додаток, щоб закріпити теорію.

Ініціалізація модуля

Перший крок у створенні програми на Go – це ініціалізація модуля Go. Вона задає структуру проєкту і дає змогу використовувати переваги системи модулів. Для цього виконайте в кореневій папці команди:

go mod init my-first-module

Ця команда створює файл go.mod, де зберігатиметься інформація про ваш модуль і його залежності.

Додавання залежності

Додамо популярну бібліотеку gorilla/mux для роботи з роутингом:

  1. Імпортуйте її у ваш код: import “github.com/gorilla/mux”
  2. Виконайте: go mod tidy

Це оновить файл go.mod і завантажить усі необхідні залежності. Подібна робота – це важливий аспект створення модулів Go, особливо для проєктів, де використовуються сторонні бібліотеки.

Поділ функціональності на пакети

Створіть папку pkg і покладіть туди, наприклад, обробники маршрутів:

package handlers  

import "fmt"  

func HomeHandler() {  

   fmt.Println("Welcome home!")  

}

Збірка і тестування

  1. Зберіть додаток у виконуваний файл: go build

Це створить бінарний файл, який можна запустити.

  1. Далі, запустіть його і переконайтеся, що все працює.

Висновок

Використання модулів у Go допомагає тримати код чистим, структуру проєкту зрозумілою, а управління залежностями – передбачуваним. Спробуйте створити свій перший Go модульний додаток уже сьогодні.

FAQ
Це спосіб організації коду, за якого проєкт розділяється на модулі для зручності розроблення та підтримки.
Вони допомагають ізолювати код, керувати залежностями і повторно використовувати частини проєкту в інших розробках.
Досить ініціалізувати його в проєкті, після чого з'являється файл з інформацією про залежності.
Можна автоматично додавати і видаляти залежності, підтримуючи їхні актуальні версії.
Часто використовуються окремі папки для вхідних точок, внутрішніх і публічних пакетів, що робить код більш організованим.
Проєкт можна зібрати у виконуваний файл, який потім запускається в потрібному середовищі.

Хочете дізнатися більше про створення модульних систем на Go? Задайте своє питання або поділіться коментарем нижче! 🤔👇

Додати коментар

Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів

foxmindED
ІТ-спека: Знижка 20% на стартові курси!
до кінця акції
00
днів
00
годин
00
хвилин
Забронювати