Отправляет email-рассылки с помощью сервиса Sendsay

Создаем свой бизнес

  Все выпуски  

Создаем свою информационную систему


Создаем свою информационную систему


Технология плагинов.

 Вернемся к разговору,  поднятому в прошлом выпуске.

 Попробуем более четко описать ситуацию.

 Сейчас происходит примерно следующее.

 Человек сообщает системе структурную информацию о каждом отдельном документе.  В моих терминах документ это несколько больше чем класс в  стандартном программировании.   В общем-то, терминология ближе всего к 1С.  Документ охватывает несколько таблиц в базе данных.  Например…  Ну например  годовой отчет может быть документом, Баланс, может быть документом. Счет может быть документом. Но есть и другая крайность. Документом может быть и единственная запись в одной таблице состоящая из одного поля.

Итак, мы как-то сообщили о структуре документа.

У документа могут  быть состояния.  И об этом мы тоже хотим сообщить. Примером состояний, ну скажем счета, может быть что-то такое:

Заполняется, Готов, Подписан, Отправлен, Получена платежка, Деньги поступили

Вообще говоря, ясно, что у документа есть несколько форм визуализации.

Например, в состоянии Заполняется все поля доступны для записи, а в состоянии Деньги поступили – все поля уже доступны  только на чтение.

Ясно, что промежуточных состояний может быть много, но в любом случае – их конечное число.

Будет весьма любезно, если человек сможет сообщить и о таких формах. Я называю их режимами работы документа.

Все… в этот момент в дело могут вступать роботы…

В нормальном цикле их не так много.  Вот  они.

1. Смарт-бот   занимается тем, что создает описание приложения для работы с указанным набором документов.   Это пожалуй самый интеллектуальный из роботов.   Суть работы в следующем.  Во первых создать  описание для будущих запросов в базе данных View.

Во вторых – строит описания журналов, которые будут отображать документы, когда их больше одного.  Ну бывает же такое ?  Десять счетов, сто двести…

Следующий шаг – подготовка описаний фильтров для журналов.  Человеку же не всегда надо видеть все множество, иногда хочется видеть только маленькую часть.

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

 

2. SQL-бот  это достопочтенный робот. Его особенность состоит в том, что он всегда делает всю работу сразу.  Он берет все накопленные тяжелым трудом описание и создает на его основании все!!! Объекты базы данных.   Таблицы, процедуры, View, функции.

 

3. Lib –бот  - это робот, который точно отображает  структуру документа в библиотеку доступа.  Для каждого языка программирования может быть реализован свой Lib-bot,  это верно для всех ботов начиная с SQL-бота.  Задача Lib-бота создать абстракцию документа, которая позволяет нам не думать о физическом устройстве  хранилища данных и позволяет полностью переключиться на термины документа. Заголовок, Строки и т.д. и т.п.

4. Control-бот   Это робот визуализатор. Он хорошо знает, что умеет Lib-бот и поэтому его работа не так уж сложна, но на самом деле он  делает гигантскую работу.  Хотя делает ее несколько формально. Control-бот  создает формочки и контролы для  редактирования данных в документе, и для работы со строками документов. Делает он это для каждого режима документа. Иногда объем кода просто гигантский. Т.е. просто на пределах работы сред программирования.

 

5. Application-бот  это робот который собирает рабочее приложение из всех предоставленных младшими ботами кусочков.

 

Вот это основные наши помощники.  Есть еще пара, но они так… скорее украшения стола.  Install-бот -  Как нетрудно догадаться этот робот делает инсталляционные пакеты. 

Doc-бот – это  способ окончательных расчетов с заказчиками. Робот для создания технической документации.

 

Итак.  Благодаря роботам в некоторый момент времени возникает четырехслойное приложение.  Доступность исходного кода в любой момент позволяет искурочить приложение как угодно, но хочется чтобы красиво….  И чтобы если что-то поменялось все снова работало…

 

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

 

Я  нарисовал вот такую картинку. 

 

Стыковка плугинов с кодом, созданным роботами

 

Зеленым цветом нарисованы места, куда может быть подключена дополнительная логика обработки в приложении.  А все остальное это результат работы роботов. Интересно, что реальное соотношение объема кода действительно такое как на рисунке, или даже более в сторону кода роботов.

 

 Идея состоит в том, чтобы не мешать работе роботов, а только дополнять ее.  Как вызвать плагин ?  Ну это просто Хотя может несколько замедлить работу приложения.   Просто теперь роботы должны делать немного другой код. Фактически требуется, чтобы перед каждым существенным действием, созданный роботом код, сначала спрашивал бы внешний плагин, не надо ли чего сделать по данному конкретному поводу. Ну а если не надо, тогда уже делал свое дело.  Все не сложно… Опять же нет плагина…. Ну и не надо.

Плагин всегда носит пассивный характер, его зовут, когда надо.

Ведущий рассылки: Михаил М. Баранов
http:\\www.abolsoft.ru bami@abolsoft.ru

В избранное