Pull to refresh

Comments 12

> такой центр создания страховых продуктов, который бы не требовал специального программирования (равно как и дорогостоящих специалистов)

> Поэтому программист может просто скопировать текущий активный калькулятор

fail
UFO just landed and posted this here
Придумали API, который описывается в виде XML. Вполне ограниченный набор полей, типов, действий и т.п. Он небольшой и описывает достаточно большой набор вариантов как полей, так и действий с ними. Т.е. текстовое поле, длина такая-то, может содержать такие-то символы, минимальная длина такая-то и все в таком духе.

Потом это уже все автоматически процессится и получается на выходе уже визуальное представление в виде html/css/js — бэкэндная поддержка на сервере. Представление в общем виде легко меняется через CSS, но в частности конкретно под какой-то проект можно и его скелет поменять, это просто связка html+xslt.
UFO just landed and posted this here
Copy Source | Copy HTML
<CONTROLLER>
    <Element id="Name" type="userinput" datatype="single" required="true">
    </Element>
 
    <Element id="_HelloName" type="calculated" required="true">
        <Formula>
            <Depends>
                <f1 on="value" of="Name" />
            </Depends>
            <Map type="concat" trim="both">
Hello, {f1}!
            </Map>
        </Formula>
    </Element>
</CONTROLLER>
 
<MODEL>
    <Element id="_HelloName">
        <Map type="xml">
            <identity />
        </Map>
    </Element>
</MODEL>
 
<VIEW>
    <Element id="Name" type="text" tab="Пример">
        <title>Как вас зовут?</title>
        <alert>Ожидается имя в написании русскими буквами</alert>
    </Element>
 
    <Element id="_HelloName" tab="Пример">
    </Element>
</VIEW>
 


В CONTROLLER мы описали требования к полям, во VIEW их внешний вид на странице.

Что касается вопроса линейности зависимостей, то она линейна, т.е. нет ветвлений (ну в прямом понимании этого слова, безусловно, есть такие понятия, как участвует поле в форме или нет в зависимости от ранее указанных значений, но это уже другая тема). На практике это означает, что клиент сначала указывает поле А, а только потом уже может произойти обработка логики Б, которое от него зависит. Вопрос про «сначала В, а потом А» не понял, т.к. не смог представить это на практике.
UFO just landed and posted this here
Весь продукт сделан на CMF Mozart, который, в общем, крутится на всех этих W3C технологиях. Когда-то у нас в API даже были средства по работе с Xforms, но они не прижились. Т.е. они были псевдо элементами, поскольку браузеры все это не поддерживали и весь процессинг приосходил на сервере. Это долгая история, но сейчас, глядя на развитие различных стандартов, включая HTML5, я бы сказал уже, что у XForms нет особого будущего. В общем, мы от них отказались в самой системе и особо не рассматривали в Insurance как продукте, потому что все-таки задачи хоть и схожие, но хотелось иметь что-то специфическое, конкретное под нашу задачу, а не униврсальное, и потому со своими причудами типа XForms.

Пример, озвученный вами, решается ведь просто: разместите сумму в начале списка (пусть это будет диапазон), а все остальные поля поставьте в зависимость от этой суммы. =) Разве это не решение?.. Мы ведь делали свой продукт не на основе какой-то теории, был вполне реальный пример с довольным большим списком практических страховых продуктов. И под все их них возможности Insurance подошли. Хотя изначально вопрос о линейности стоял, но практического применения иного алгоритма просто не смогли найти.
UFO just landed and posted this here
Задача ведь не сделать так, как хочет пользователь. Сколько людей — столько и мнений. Задача — сделать нормальную возможность ПОЛУЧИТЬ итоговую сумму с оформленной формой. Надо просто решиться и выбрать, как это преподнести клиенту. Чем у клиента больше возможностей, тем сложнее выбор. Должна быть одна форма. Все.

Система ведь для того и нужна, чтобы оперативно вносить новые данные или изменять старые. Если по каким-то причинам продажи не пойдут и причиной этому будет форма, ее можно оперативно поменять. Для этого система предлагает все условия.

Спорить можно долго. Мы реализовали то, что, как нам кажется, достаточно и при этом не усложняет систему настолько, чтобы писать толмуды документации. Возможен вариант иного развития событий.
UFO just landed and posted this here
Вообще, если это интересно, то имеется демо-сайт, где можно увидеть разные варианты калькуляторов и полазить внутри, посмотреть, как они сделаны. Могу выслать в личку.
UFO just landed and posted this here
Sign up to leave a comment.

Articles