Этот репозиторий содержит описание библиотеки 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
подробнее;
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 утилиты.