Основные понятия
Contents
Основные понятия#
Данная глава описывает основные понятия необходимые для понимания организации разработки
Решение#
Дистрибутив решения это набор скомпилированных библиотек (jar
файлов) устанавливаемых в сервер приложения.
Решение предоставляет весь перечень прикладной бизнес логики необходимой
для работы сервера приложения.
Системные требования#
Установленный сервер приложения GlobalFramework
Доступ к базе данных PostgreSql
Дистрибутив сервера приложения#
Дистрибутив сервера приложений представляет из себя архив содержащий набор файлов необходимый и достаточный для
запуска решений
.
Системные требования#
Java на базе OpenJDK 1.8
Модуль#
Неделимый набор файлов для сборки решения. Набор модулей определяет доступную функциональность развернутую в сервере приложения.
Модуль содержит:
Классы
Описание атрибутов таблицы, и бизнес логика обработки строк.Подробнее смотри:
Выборки
Выборка определяет правило получения, отображение данных и обеспечивает взаимодействие с пользователем.Подробнее смотри:
Поставочные данные
Данные и скрипты для установки в БД при первом запуске решения.Скрипты миграции
Скрипты комплексного обновления схемы базы данных и модуля при первом запуске новой версии решения
Зависимости#
Модуль может содержать зависимости от другим модулей:
Статическая зависимость
При статической зависимости в программе дочернего модуля можно использовать весь код родительского модуля, как если бы этот код был в самом дочернем модуле. При этом невозможен параллельный выпуск родительского и дочернего модуля. Для исключения ошибок бинарной несовместимости необходимо выпустить сначала родительский модуль и на основе него дочерний. Либо оба модуля должны выпускаться одновременно в одной сборке.Динамическая зависимость
При этом доступ к дочернему модулю возможен только через jexl скрипты. Jexl скрипты ограничивают возможности совместного использования кода, часто неявно требуя специализированных фасадов для взаимодействия. Однако это позволяет выпускать релизы модулей независимо друг от друга.
Проектный модуль#
Модуль содержащий в себе конфигурацию решения, данный модуль содержит:
Обработку прикладных событий
Прикладные модули могут предоставлять набор событий на которые можно подписаться для расширения или склейки поставочной бизнес логикиКонфигурацию проектных переопределений
Можно переопределить контроллеры классов и выборокПроектную бизнес-логику
Если нет специальной необходимости выделять отдельный модуль для бизнес-логики, ее можно расположить непосредственно в проектном модуле.
Репозиторий библиотек#
Репозиторий библиотек хранит повторно используемые артефакты. Для корректной сборки решения необходимо предоставить доступ к следующим репозиториям:
Репозиторий библиотек
Репозиторий комплектов сборки
Используется в случае если проект собирается на основе комплекта сборки
Примечание
Используются разные репозитории, так как это облегчает сброс локального кэша, что
может быть полезно при использовании snapshot
версий.
Комплект сборки#
Набор одновременно выпускаемых артефактов, достаточный для сборки проекта. Базовый комплект сборки содержит:
Сервер приложений
Плагин сборки
Используется для расширения стандартной функциональности sbtБазовые модули
Модули публикуются группами в комплекте сборки. Что существенно снижает нагрузку на программистов при разработки модуля.
Так как позволяет не отслеживать бинарную совместимость. Это позволяет существенно увеличить допустимые изменения
в рамках одной версии релиза или snapshot
версии.
База данных#
Для хранения транзакционных данных используется база данных postgreSQL
Системные требования#
postgreSQL 12 и выше
Конфигурация решения#
Позволяет настраивать поведение решения без привлечения программистов.
В основном содержит:
Настройки электронных подписей для пользователей
Права доступа
Универсальные характеристики
Универсальные справочники
Создание базы данных для разработки#
Программист может в любой момент создать себе локальную копию базы данных(Начало работы).
При необходимости распространять конфигурацию по локальным базам разработки, возможно:
Использование полных релизов конфигурации
Клонирование базы разработки с настроенной конфигурацией решения
В простейшем случае достаточно снятия и установки дампа схемыpublic
Создание тестовой базы данных#
Тестовая база может быть создана от рабочей базы.
В простейшем случае достаточно снятия и установки дампа схемы public
.
Шаблон ландшафта#
common_dev
Центральный проект разработки. На нем разрабатываются базовые версии модулей. И выпускаются релизы коробочных решений.project_dev
Проектная база разработки, осуществляется детальная настройка модулей и интеграций по ТЗ заказчика. Производится тестирование.project_test
Тестирование решения на мощностях заказчика.project_prod
Рабочий контур заказчика
Файловое хранилище#
Используется для хранения прикрепленных файлов отдельно от БД. Это позволяет существенно снизить нагрузку на базу данных.
Доступ к файловым хранилищам настраивается в приложении: Настройка системы \ Сущности > Файловые хранилища