UML в качестве редактора универсального браузера(Прочитано 23571 раз)
Лет пять назад раз я тоже похожий фреймворк (на PHP :) ) сделал. В нём достаточно было объявить структуру данных в подключенной БД - и автоматически появлялась возможность просматривать и искать их в табличном виде, добавлять и редактировать в детальном, переходить между связанными записями. Выполнять действия над записями (и добавлять их, описывая логику на том же PHP :) ), планировать задачи. С учётом авторизации и полномочий пользователей. Были также заготовки для "документов" и "сложных объектов".

БД использовалась только для хранения и поддержки целостности при этом, никакой неестественной логики в триггерах и хранимых процедурах не было. Поэтому генерировалась она из "логической" ER-диаграммы (через "физическую") на PowerDesigner. Собственно, к "физической" можно было переходить и от UML, но тогда я не чувствовал в этом надобности. Поэтому, кстати, поддерживались 2 очень разные СУБД - PostgreSQL для "штатного" использования, и SQLite для демонстрации "с флешки" (тогда она у меня была, как помню, объёмом 32 Мб USB 1.0, поэтому не быстрая).

Реализовать прототип системы оценки и сертификации санаторно-курортных организаций на этом фреймворке заняло 3 мес. (включая доработку самого фреймворка). Впрочем, работа с БД была далека от совершенства, в некоторый момент пришлось оптимизировать запросы по отдельности, выделять слой доступа к данным, строить хитрые индексы, и красота MDD от "логической" модели стала пропадать - пришлось "логическую" и "физическую" ER-диаграммы держать в связанном виде. Потом стал вводить в описание структуры данных для системы разные "хинты" для автоматического построения форм в более "красивом виде". В общем, "субъективные бантики", которые нужны Заказчикам, портят всю красоту MDD, а предугадывание "бантиков" - задача длительного исследования и построения сложного ИИ :) .

Потом пару раз пробовал этот фреймворк для разного использовать: сделать системку для управления разработкой при SCRUM'е заняло 1 нед., инвентаризатор ресурсов в локальной сети - тоже 1 нед. В какой-то момент хотел выложить фреймворк в GPL на sourceforge - но увидел, что там несколько таких уже есть, и что в моей поделке есть много dirty code, "вычищать" который у меня уже не было времени и желания (в тот момент я как раз перешёл на работу "специализированным" системным аналитиком в совсем другой предметной области).
« Последнее редактирование: 31 Мая 2009, 21:16:52 от AlexTheRaven »




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19