Категория:Плагины modlibs — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
 
 
Строка 1: Строка 1:
 
[[Категория:Плагины]]
 
[[Категория:Плагины]]
 +
Плагины modlib подразделяются на три типа:
 +
* Библиотеки - считаются продолжением того плагина, который их вызывает (тот же ama к ним относится). Он не нарушает архитектуру того, что внешние синхронизации должны быть через sync, потому что просто линкуется к модулю sync, который его вызывает и не имеет собственных данных, настроек, не инициализирует сам никаких действий. Библиотеки виджетов имеют тот же принцип - они расширяют плагины im, а не действуют самостоятельно
 +
* Системные сервисы. В FDO микроядерная архитектура, поэтому любые системные расширения включаются не в ядро, а в modlib: расширенные базовые классы, методы отправки уведомлений, методы логирования (если не в базу, а в файлы логов), методы сохранения сообщений об ошибках, методы отправки уведомлений пользователю.
 +
* Контроллеры для модели MVC: если у нас сложная модель предметной области (например, журнал), задействующая много справочников, нам будет сложно сделать декомпозицию методов справочников, не сформировав слишком много перекрестных зависимостей, но и в im/journal мы не должны класть методы для работы с данными, im занимается только отображением и первичной обработкой форм, поэтому мы выносим контроллер в отдельный modlib/journal или вроде того.

Текущая версия на 12:27, 1 декабря 2017

Плагины modlib подразделяются на три типа:

  • Библиотеки - считаются продолжением того плагина, который их вызывает (тот же ama к ним относится). Он не нарушает архитектуру того, что внешние синхронизации должны быть через sync, потому что просто линкуется к модулю sync, который его вызывает и не имеет собственных данных, настроек, не инициализирует сам никаких действий. Библиотеки виджетов имеют тот же принцип - они расширяют плагины im, а не действуют самостоятельно
  • Системные сервисы. В FDO микроядерная архитектура, поэтому любые системные расширения включаются не в ядро, а в modlib: расширенные базовые классы, методы отправки уведомлений, методы логирования (если не в базу, а в файлы логов), методы сохранения сообщений об ошибках, методы отправки уведомлений пользователю.
  • Контроллеры для модели MVC: если у нас сложная модель предметной области (например, журнал), задействующая много справочников, нам будет сложно сделать декомпозицию методов справочников, не сформировав слишком много перекрестных зависимостей, но и в im/journal мы не должны класть методы для работы с данными, im занимается только отображением и первичной обработкой форм, поэтому мы выносим контроллер в отдельный modlib/journal или вроде того.