Думаю сделать велосипед, но вдруг уже такой есть?
Задача в том, что перенести клепание формочек с программистов на выделенных людей (на аналитиков, или прикупить формочкоклепателей). Для этого нужен редактор, который будет выдавать универсальную логическую разметку форм, и должен обладать достаточной гибкостью для быстрой допилки под свои нужды.
Прежде чем пилить свой велосипед, общараюсь вот к вам, lor-development боги, может уже есть готовое?
Далее описываю конкретней.
Платформы разные, но в качестве первой платформы подразумевается Веб-интерфейс для IE8+ + центральный сервер + Java + стеки Wicket/Spring/EJB + Hibernate + Bootstrap3 + JavaScript/CoffeeScript/TypeScript с генерацией в plain JavaScript без фреймворков (максимум jQuery, Angular уже не) + «четырехуровневая архитектура» by Oracle
Идея велосипеда в общих чертах такая:
0) Есть сущности: «формы» и «бизнес-процесс». Для них создается редактор, генератор кода, рендерер. Более конкретно ниже.
1) сделать конструктор для Bootstrap 3 (именно 3, а не 4, чтобы работало под IE8. А IE8 потому что последний браузер для Windows XP).
(Т.е. целевой код будет генериться в Bootstrap3, а в самой конструирующей софтине может быть использовано что угодно, хоть Angular2. Главное чтобы структура формы хорошо ложилась на Bootstrap Responsive Grid и стандартные компоненты)
2) Пользователю дается обычный редактор дерева (как папки в проводнике шиндовс)
3) Пользователь может добавлять туда компоненты бутстрапа - элементы responsive grid, инпуты всякие, кастомные компоненты.
(«кастомные компоненты» кодятся отдельно - внешний вид, как они будут выглядеть в редакторе на тулбаре, на превью формы, итп. Как было в Delphi нашего детства).
4) У них можно редактировать элементарные свойства, а программистам движка - быстро добавлять новые
5)На выходе получается XMLка с деревом
6) Далее из этой XMLки генерится (н-р на фазе mvn generate-sources) модели-контроллеры-верстка для викета-спринга-ежабы и код для приклеивания к сущностям БД
7) Немного жалких оправданий. Совсем круто, если генерацию можно делать в рантайме веб-приложения, а не генерить. Генерить - фу, формоклепатели не осилят поднмиать проект на локальной машине. Но говнофреймворк Wicket диктует свои ограничения, и чтобы генерить формы в рантайме нужно провести некислый рисёч и понаписать костылей к Викету, возможно даже покопаться в его ядре. Плюс у спринга принят метод инициализации на этапе запуска контейнера, и тут тоже надо некисло погеморроиться (но в отличие от Викета, создатели спринга не все наркоманы, и есть шанс это вывезти).
8) Если формы заполняются пачкой, а не по-отдельности, то нужно еще забацать редактор «бизнес-процесса», как в Джире например. Каждая формочка вешается на этап бизнес-процесса. Пользователь как по рельсам едет от входа в процесс к выходу, параллельно собирая данные с формочек. Для создания этих рельс делается редактор графа, в редакторе можно назначить начальную и конечную ноду (вход и выход из процесса), можно накидать какую-то мета-информацию. После прохождения через генератор на выходе получаются сопли (т.е. код для приклеивания к формочкам) и большая бочка с мета-информацией. Вот это всё говнецо уже не прибито гвоздями к веб-фреймворку, и вполне можно генерить не конкретный код, а прямо в рантайме доставать данные о бизнес-процессе из базы.
9) Далее мы всю эту херь вручаем аналитикам, и пусть дальше с формами пердолятся они, а не мы. Когда будет не хватать фичей, будем впиливать их прямо в конструктор.
Хороша идея? Где изъян? Подскажите готовое)