# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
Описание GoComponents v0.8.0
Этот репозиторий содержит описание библиотеки GoComponents.
Статус библиотеки
Библиотека находится в стадии разработки.
Описание библиотеки
Библиотека содержит набор компонентов повторного использования:
- Компонент
mrsettings
для хранения и получения произвольных настроек с различными вариантами, в том числе и с использованием кэша; - Компонент
mrordering
упорядочивания записей на основе двусвязного списка, позволяет встраиваться в произвольные таблицы БД; - Очередь элементов
mrqueue
основанной на БД с возможностями:- захвата ограниченного кол-ва элементов для их обработки;
- повторной обработки элементов при возникновении ошибок;
- отложенной обработки элементов;
- Компонент
mrmailer
для массовой отправки сообщений различными провайдерами. Основан на очереди элементовmrqueue
, которая даёт все её преимущества; - Компонент
mrnotifier
для отправки персонализированных уведомлений на основе шаблонов. Также основан на очереди элементовmrqueue
;
Подключение библиотеки
go get -u github.com/mondegor/[email protected]
Установка библиотеки для её локальной разработки
- Выбрать рабочую директорию, где должна быть расположена библиотека
mkdir go-components && cd go-components
// создать и перейти в директорию проектаgit clone [email protected]:mondegor/go-components.git .
cp .env.dist .env
mrcmd go-dev deps
// загрузка зависимостей проекта- Для работы утилит
gofumpt
,goimports
,mockgen
необходимо в.env
проверить значения переменныхGO_DEV_TOOLS_INSTALL_*
и запуститьmrcmd go-dev install-tools
Консольные команды используемые при разработке библиотеки
Перед запуском консольных скриптов библиотеки необходимо скачать и установить утилиту Mrcmd.
Инструкция по её установке находится здесь
mrcmd go-dev help
// выводит список всех доступных go-dev команд;mrcmd go-dev generate
// генерирует go файлы через встроенный механизм go:generate;mrcmd go-dev gofumpt-fix
// исправляет форматирование кода (gofumpt -l -w -extra ./
);mrcmd go-dev goimports-fix
// исправляет imports, если это требуется (goimports -d -local ${GO_DEV_IMPORTS_LOCAL_PREFIXES} ./
);mrcmd golangci-lint check
// запускает линтеров для проверки кода (на основе.golangci.yaml
);mrcmd go-dev test
// запускает тесты библиотеки;mrcmd go-dev test-report
// запускает тесты библиотеки с формированием отчёта о покрытии кода (test-coverage-full.html
);mrcmd plantuml build-all
// генерирует файлы изображений из.puml
подробнее;
Короткий вариант выше приведённых команд (Makefile)
make deps
// аналогmrcmd go-dev deps
make generate
// аналогmrcmd go-dev generate
make fmt
// аналогmrcmd go-dev gofumpt-fix
make fmti
// аналогmrcmd go-dev goimports-fix
make lint
// аналогmrcmd golangci-lint check
make test
// аналогmrcmd go-dev test
make test-report
// аналогmrcmd go-dev test-report
make plantuml
// аналогmrcmd plantuml build-all
Чтобы расширить список команд, необходимо создать Makefile.mk и добавить туда дополнительные команды, все они будут добавлены в единый список команд make утилиты.