Просто о сложном (Habrahabr posts)
Здесь мы пытаемся рассмотреть и обсудить отдельные аспекты реализации новой технологии програмирования.
В рамках одного проекта была поставлена задача долговременного хранения логически связанных объектов данных с обеспечением многопользовательского доступа к их содержимому. Возможны различные способы удовлетворения этой потребности средствами уже существующих систем управления данными. Тем не менее, был предпринят поиск простого и производительного решения, результаты которого и предлагаются к рассмотрению.
Далее …
Структуры данных со свойствами программы
Как известно, база данных — это хранилище структурированной информации, пассивное по своей сути. Бизнес-логика приложения реализуется где-то вне базы, в виде "набора действий для достижения требуемого результата". В случае внесения изменений в хранимый набор данных результатом должно стать новое состояние базы. В краткой форме это можно записать как-то так: событие → {действия} → результат. Изменим эту формулировку на: событие → правила → результат, и посмотрим, что из этого получится.
Далее ...
С информационной точки зрения связь двух объектов следует понимать исключительно как взаимный обмен идентификаторами, по принципу – "я тебя вижу", и не более того. При этом сам объект – это экземпляр класса данных, а связь объектов класса – практическая реализация правил, устанавливаемых декларацией отношения классов - экземпляра одной из четырех фундаментальных абстрактных сущностей, используемых для моделирования предметной области. Отношение классов не только устанавливает правила связи объектов, но и служит естественным контекстом (транспортом и условием) для организации взаимодействия атрибутов, локализованных в разных классах.
Каждый из связываемых отношением классов получает в свое владение ссылочный атрибут, типизированный оппозитным классом отношения, значением которого в объекте класса и становится идентификатор объекта оппозитного класса. И хотя связь объектов – всего лишь частный случай связи значений, правила существования и реализации связи объектов обладают обширной спецификой, которую мы сейчас и рассмотрим.
Далее ...
Программирование в терминах предметной области
Методология этого процесса представляется достаточно простой и самоочевидной.
Внимательно рассмотрим целевую область на предмет выявления в ней отдельных понятийных сущностей и их возможной наследственной общности, и каждую сущность оформим в виде класса данных. Для каждой пары логически связанных сущностей определим количественный аспект их взаимодействия, и создадим между классами сущностей отношение соответствующего типа. Каждую значащую характеристику сущности декларируем в виде атрибута, и если эта характеристика зависит от других характеристик – свяжем соответствующие атрибуты виртуальными соединителями. Последовательное и методичное исполнение этих рекомендаций позволяет на выходе получить декларативную модель приложения, которая в соответствующей вычислительной среде будет выполнять функции полноценной программы.
Далее ...
Рассмотренные ранее технологии объектного управления данными позволяют интегрировать всю бизнес-логику прикладной задачи непосредственно в мета-модель базы данных, где она в дальнейшем и исполняется. Такая централизация прикладного функционала, помимо всего прочего, сильно упрощает реализацию интерфейса приложения, на долю которого остается организация прямого взаимодействия пользователя с моделью приложения и содержимым базы данных. Что в свою очередь позволяет, в рамках парадигмы сущность-представление, создавать пользовательский интерфейс произвольной сложности простым созданием экземпляров, практически без написания программного кода.
Далее ...
Любая библиотека визуальных компонент является мощным инструментом создания пользовательских интерфейсов. Да вот незадача. По мере визуального и функционального усложнения конкретного библиотечного компонента закономерно расширяется и набор его свойств. Так, например, такой относительно простой компонент как Кнопка с иконкой и надписью, насчитывает их больше сорока. При таком их обилии, диалоговая доступность отдельного свойства для изменения его значения, уже оставляет желать лучшего, и далее, по мере расширения набора, продолжит прогрессивно ухудшаться.
Но угнетает вовсе не это. Сколь ни обширна сама библиотека, сколь ни функциональны ее компоненты, а в очередном проекте обязательно объявится потребность, причем самая настоятельная, которую не удается удовлетворить уже имеющимся набором.
Средством преодоления этих проблем может стать библиотека, содержащая минимальный набор простых компонент-примитивов, образующих своего рода визуальный алфавит. Такой, который позволяет комбинированием экземпляров входящих в его состав примитивов реализовать визуальный интерфейс абсолютно произвольной сложности. Аналогичный прием уже показал свою эффективность применительно к данным.
Предметом дальнейшего рассмотрения будет крохотная библиотека, содержащая всего четыре компонента: Image, Text, Canvas и Enum.
Далее ...
Технологии и архитектура платформы
Платформа Visual Data является программной реализацией одноименной технологии, и представляет собой вычислительную среду объектного управления данными, включающую в себя полнофункциональную объектную СУБД, а также полный стек инструментальных и коммуникативных средств для быстрого создания прикладного программного обеспечения.
Далее ...