Skip to content
This repository was archived by the owner on Mar 2, 2025. It is now read-only.

История

do- edited this page Dec 25, 2022 · 16 revisions

В 2003 году в рамках разработки нескольких российских корпоративных информационных систем была разработана платформа Eludia.pm.

Первые проекты были рассчитаны на закрытые сети организаций с рабочими местами на базе штатно установленных Windows 2000 / MSIE 5.0 (без перспектив обновления). Для них требовалось быстро и дёшево разрабатывать и по мере внезапной необходимости моментально модифицировать учётные системы, не требовавшие уникальных дизайнерских решений, но простые в освоении неподготовленными пользователями.

Первоначально использовался серверный стек Linux/Apache/MySQL/Perl, впоследствии была снята зависимость от всех перечисленных компонент, кроме одной, самой важной: Perl 5. Поскольку вся платформа представляла собой библиотеку подпрограмм на этом языке + набор графики для отображения кнопок.

В своей нише: закрытые заказные intranet-системы со специфической и часто меняющейся логикой -- Eludia.pm была весьма эффективна, в особенности в первые 10 лет развития. Типовой набор UI-элементов покрывал большинство имевшихся потребностей, а гибкость и лаконичность Perl 5 в сочетании с простой и прозрачной организацией кода обеспечивала необычайно низкую себестоимость процесса разработки/поддержки на вполне приемлемом уровне качества. Десятки Eludia-систем, создававшихся около 2005 года, успешно функционируют и 15 лет спустя.

Однако с течением времени стали накапливаться проблемы, которые всё сильнее мешали использовать эту платформу в новых проектах:

  • стандартный набор фрагментов HTML/CSS/js слабо изолирован от серверной логики, соответственно, сложно поддаётся модернизации;
    • в особенности это стало проявляться по мере того, как MSIE перестал быть браузером по умолчанию даже в органах государственной власти;
  • реализация web-сайтов с индивидуальным дизайном на данной платформе совершенно неадекватна, а проектов без пусть небольшой, но обязательной публичной части ("личный кабинет") со временем всё меньше;
  • архитектура решения адекватна для изолированной системы со сложной, но единственной реляционной БД, однако плохо применима в случае многих разнородных источников данных, интеграции через Web-сервисы и т. п.
  • глубоко однозадачная природа интерпретатора Perl5 плохо подходит для реализации асинхронных сценариев, потребность в которых обусловлена опять-таки интеграционными задачами;
  • дурная слава Perl обусловила демографическую проблему: старPerl'ы уходят (по крайней мере, из профессии), а миллениалы чураются обучения древней магии.
В 2017 году была определена общая спецификация для будущих разработок и в соответствии с ней платформа была разделена на две обособленные части:
  • серверную Dia.pm, представляющую собой Eludia.pm за вычетом всей презентационной логики;
  • и клиентскую elu.js, написанную по мотивам спецификации и реализующую традиционную для Eludia организацию кода.
Набор UI-компонент в новую платформу не вошёл, что естественно: главной целью мероприятия было избавиться от этой зависимости. В проекте tasks используется его дизайн, воссозданный средствами jQueryUI/SlickGrid. Но вообще elu.js предназначена для реализации произвольного заказного дизайна и стыковки с любыми сторонними js-библиотеками. В больших проектах на базе elu/dia в данный момент (10.2019) формы и таблицы рисуются в основном при помощи w2ui.

А в течение 2019 года была разработана Dia.js: полная замена Dia.pm на базе вроде бы пока ещё актуального node.js. Это не дословный перевод с Perl на javaScript, а библиотека, написанная с нуля, но с учётом имеющегося опыта: как положительного, так и отрицательного. В частности, любое Dia.js приложение может:

  • оперировать с произвольным числом равноправных разнородных источников данных;
  • единообразно обрабатывать запросы, приходящие через интерфейсы разной природы (RESTFul-сервисы, очереди);
  • реализовывать сложные асинхронные сценарии типа split/join.
В общем, на смену платформе монолитных систем пришёл "движок" "шины".

В конце 2022 года, в свете очередного переосмысления имеющегося опыта, стартовал следующий проект из той же серии: doix.

Clone this wiki locally