{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Структура Фреймворка IONDV. Framework

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

  • контейнеры docker ( среда виртуализации ) ;
  • среда исполнения фреймворка;
  • СУБД;
  • файловая система;
  • среды сборки версий и их хранения;
  • программа редактирования метаинформации.

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

Модули

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

Приведем пример, модуль реестра ( the registry module) используется в каждом проекте, так как предназначен непосредственно для ведения данных в виде реестра данных.

Также вряд ли получится обойтись без модуля администрирования ( the admin module), который отвечает за управление пользователями приложения и доступом к нему. Это модули обязательной функциональности.

В модули дополнительной функциональности входят: модуль Дашборда ( the dashboard module), модуль диаграммы Гантта ( the Gantt chart module) и т.п., то есть те модули, которые не составляют основу фреймворка. Таким образом добавляя различные модули дополнительной функциональности к основе фреймворка, мы получаем огромное множество возможных вариантов его использования — от создания небольшого информационного портала до полноценной системы управления проектами.

Файловая структура

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

  • папка для приложений - « applications »
  • папки для модулей - « modules »
  • папка для ключевой функциональности ядра — « core »
  • папка с файлами запуска и низкоуровневого управления платформой - « bin »
  • папка с файлами общих библиотек - « lib »
  • папка с файлами конфигураций ядра - « config »
  • папка с файлами шаблонов представления - « view »

Со временем мы добавили папки: версии « versions », где ведется список внесенных изменений в новые релизы; тесты « test » для тестирования изменений; документация « docs », где ведется документирование системы.

Структура метаданных

Мы разместили разные типы метаданных в разные папки, тем самым логично структурировав их в репозитории данных. Например метаданные класса расположены в папке meta, метаданные навигации в папке navigation, представления классов в папке views и т.д. Напомним, что метаданные представляют собой сведения о признаках и свойствах, характеризующих какие-либо сущности, таким образом у нас есть класс и его атрибуты.

Описывая класс, мы используем термины общая часть при описании характеристик класса и атрибутивная при описании характеристик атрибутов. Структуру основных типов меты можно представить следующим образом. Мета классов является основным источником формирования данных в приложении. Мета классов состоит из атрибутов (атрибутивная часть) и параметров самого класса (общая часть).

Атрибуты - это объекты массива "properties" общей части, которая содержит поля, имеющие отношение к самой структуре и способам оперирования данными в ней. На основе меты классов задается мета представлений, мета навигации, мета отчетов, мета бизнес-процессов и т.д.

Мета представления класса позволяет задавать желаемый состав атрибутов этого класса для отображения на форме, в соответствии с типом формы представления (представление формы списка list.json, создания create.json, изменения класса item.json) и указывать для каждого отдельного атрибута свойства, переопределяемые и (или) дополняемые свойства, задаваемые в мете класса для данного атрибута. Объединив атрибуты классы и мету представления, мы получим отображение этих атрибутов на форме.

Мета представления + Атрибуты класса = Отображение атрибутов на форме

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

0
Комментарии
-3 комментариев
Раскрывать всегда