Приступив к очередному (не буду умничать - ко второму) проекту с участием Cairngorm, представил как много однотипного кода придётся нацарапать ручками. На прошлом (читай - первом) проекте с участием Cairngorm был полный хэндмейд. Это дало мне потенциальность подготовиться произносить название фреймворка покопошиться в кишочках архитектуры и отлично разобраться что к чему, но данное время - ни на копейку другое происшествие. Нужно создать чурка классов максимально быстро и эффективно, затем свой взор обратил я в сторону генераторов стих.
Поиск был начат с гугла, ничего подходящего под мои задачи найдено не было.
Найденные генераторы были негибкими и генерировали весь код для клиента и сервера (какой-либо одной платформы, например, Ruby или Java), либо выглядели кривыми поделками.
Было жребий брошен написать свой (ну конечно же, это так актуально :), простой и быстрый (в написании).
Официализация требований к сему генератору выглядела так:
- Должен быть максимально гибким в переконфигурации.
- Не привязываться к какой-либо-то конкретной IDE.
- Оснащать генерацию заключение как для клиента (Flex/Cairngorm), так и для сервера (AMFPHP, .NET).
- Использовать для описания классов VO информация из какого-нибудь общего ресурса, бай то UML, структура БД или чорта лысого, лишь бы было удобно парсить.
- Использовать по-минимуму внешних ресурсов для генератора заключение.
С учётом того, что, собственно, сам генератор кода будет запускаться не так уж часто, потратить минимальное время на его реализацию.
Также я согласен с тем, что он будет работать только на моей Windows XP, то есть никакой задачи кроссплатформенности на ставилось, однако, было бы неплохо, чтобы при необходимости его можно было бы портировать без особых заморочек.
Мне понравилась идея поддевать эмпирика для VO из структуры базы данных, а не повествовать их ручным способом. Ручной, конечно, получается с огромной форой лучше и ближе к истине, потому что, безо всяких же, структура БД никогда не совпадает с моделью данных приложения. Но при добавлении сущности в БД, предпринимать каждый раз ту же процедуру руками для генератора, мне показалось неоправданной тратой моего личного и рабочего времени. Пусть это хорошего понемножку не так широкоуниверсально, но автоматом, подумал я. А нестыковки модели БД и данных приложения можно царствовать руками. Да, в конце концов, в любом случае, сгенерированый код придётся прочёсывать вручную и просматривать (вглазную, хехе), так что чевоужтам.
На хорошем уровне было бы входные показания достигать в XML или преобразовывать в него, чтобы для дальнейшей генерации стих утилизировать шаблоны XSL-трансформаций. Люблю я их за чрезвычайную ловкость и универсальность. В генераторе я использовал MSXSL, оболочку командной строки для процессора MSXML.
Считать её можно забесплатно с сайта Microsoft (25k)
Таким образом, суть генератора стих свелась к пакетному файлу, паре скриптов и шаблонам трансформации.
Процедура работы описана в batch-файле, какой-нибудь так же, как и всё остальное находится в репозитории проекта на гуглокоде.
Толки нанотехнологиям!
Результаты референдума по Игналине говорят, что у литовцев прошел “
Политика промышленных олигополий.
Экс-премьер Эстонии Март Лаар о послевоенной Грузии: "
Крупнейшие банки России. Рейтинг по активам-нетто.
12 Июля - Выступление на мотокроссе (академ городок)
Не мерзни!
Комментариев нет:
Отправить комментарий