Перейти к основному содержимому

Введение

Проблемы

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

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

Помимо написания продуктового кода, также существует потребность в едином процессе сборки и доставки этого кода непосредственно клиенту.

Когда продукт и команда одинаковы, то нет проблем с разными кодовыми базами, развертыванием и доставкой; вы настраиваете это один раз, и это всегда работает.

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

Если в организации есть devops-специалист или целый отдел, занимающийся автоматизацией процессов разработки, они могут взять на себя работу по синхронизации devops-настроек, но проблема синхронизации продуктовых архитектур и архитектур модулей останется.

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

Решения

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

Постоянная настройка devops для проектов с разными модулями также очень утомляла.

Коллекция утилит NestJS-mod предназначена для унификации приложений и модулей, а также предлагает новые логические возможности для разделения ответственности между модулями (System, Core, Feature, Integration, Infrastructure).

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

Единым источником информации для эксплуатации, развертывания, доставки и документации является само приложение NestJS-mod.

Модули NestJS-mod сами генерируют все необходимые настройки и скрипты для запуска различных инфраструктурных систем.