четверг, 15 апреля 2021 г.

Разработка и публикация модулей в Golang

Вы можете собрать связанные пакеты в модули, а затем опубликовать модули для использования другими разработчиками. В этом посте дается обзор разработки и публикации модулей.

Для поддержки разработки, публикации и использования модулей вы используете:

  • Рабочий процесс, с помощью которого вы разрабатываете и публикуете модули, со временем обновляя их новыми версиями.
  • Приемы проектирования, которые помогают пользователям модуля понять его и стабильно обновлять до новых версий.
  • Децентрализованная система для публикации модулей и получения их кода. Вы делаете свой модуль доступным для использования другими разработчиками из вашего собственного репозитория и публикуете с номером версии.
  • Система поиска пакетов и браузер документации (pkg.go.dev), в котором разработчики могут найти ваш модуль.
  • Соглашение о нумерации версий модуля, чтобы сообщить разработчикам, использующим ваш модуль, ожидания стабильности и обратной совместимости.
  • Инструменты Go, которые упрощают другим разработчикам управление зависимостями, включая получение исходного кода вашего модуля, обновление и т. д.

Смотрите также

Рабочий процесс разработки и публикации модулей

Если вы хотите опубликовать свои модули для других, вы принимаете несколько соглашений, чтобы упростить использование этих модулей.

  1. Разработайте и запрограммируйте пакеты, которые будет включать модуль.
  2. Зафиксируйте код в своем репозитории, используя соглашения, которые гарантируют, что он будет доступен другим через инструменты Go.
  3. Опубликуйте модуль, чтобы разработчики могли его обнаружить.
  4. Со временем обновите модуль, добавив в него версии, использующие соглашение о нумерации версий, которое сигнализирует о стабильности каждой версии и обратной совместимости.

Дизайн и развитие

Разработчикам будет легче найти и использовать ваш модуль, если функции и пакеты в нем образуют единое целое. При разработке общедоступного API модуля старайтесь, чтобы его функциональность была сфокусированной и дискретной.

Кроме того, проектирование и разработка вашего модуля с учетом обратной совместимости помогает его пользователям обновляться, сводя к минимуму изменение их собственного кода. Вы можете использовать определенные методы в коде, чтобы избежать выпуска версии, нарушающей обратную совместимость.

Перед публикацией модуля вы можете ссылаться на него в локальной файловой системе с помощью директивы replace. Это упрощает написание клиентского кода, который вызывает функции в модуле, пока модуль все еще находится в разработке.

Децентрализованная публикация

В Go вы публикуете свой модуль, помечая его код (навешивая тег) в своем репозитории, чтобы сделать его доступным для использования другими разработчиками. Вам не нужно отправлять свой модуль в централизованную службу, потому что инструменты Go могут загружать ваш модуль непосредственно из вашего репозитория (расположенного с использованием пути к модулю, который представляет собой URL-адрес без схемы) или с прокси-сервера.

После импорта вашего пакета в свой код разработчики используют инструменты Go (включая команду go get), чтобы загрузить код вашего модуля для компиляции. Для поддержки этой модели вы следуете соглашениям, которые позволяют инструментам Go (от имени другого разработчика) извлекать исходный код вашего модуля из вашего репозитория. Например, инструменты Go используют указанный вами путь к модулю вместе с номером версии модуля, который вы используете для маркировки модуля для выпуска, чтобы найти и загрузить модуль для его пользователей.

Обнаружение пакетов

После того, как вы опубликовали свой модуль и кто-то загрузил его с помощью инструментов Go, он станет видимым на сайте обнаружения пакетов Go по адресу pkg.go.dev. Там разработчики могут выполнить поиск по сайту и прочитать документацию.

Чтобы начать использовать модуль, разработчик импортирует пакеты из модуля, затем запускает команду go get, чтобы загрузить исходный код для компиляции.

Дополнительные сведения о том, как разработчики находят и используют модули в посте Управление зависимостями.

Управление версиями

По мере того, как вы пересматриваете и улучшаете свой модуль с течением времени, вы назначаете номера версий (на основе семантической модели управления версиями), предназначенные для обозначения стабильности каждой версии и обратной совместимости. Это помогает разработчикам, использующим ваш модуль, определить, когда модуль стабилен и может ли обновление включать значительные изменения в поведении. Вы указываете номер версии модуля, отмечая (навешивая тег) исходный код модуля в репозитории номером.


Читайте также:


Комментариев нет:

Отправить комментарий