PDA

Просмотр полной версии : Генераторы классов?


gaap5
10.04.2011, 02:25
Я только начал изучать AS3, в местной терминологии шарю слабо, собственно вопрос: имеются ли какие-нибудь утилиты для генерации классов?

Нужно что-то похожее на Propel из пхп, только без функционала модели, а просто на основе некого конфига сгенерить нужные базовые классы в нужных неймспейсах (или пакаджах, как они тут называются), прописать им нужные наследования и интерфейсы, расставить геттеры/сеттеры (хотелось бы вида getVar(), а не get var()), и заготовить пустые наследующие классы собственно под правку.

Котяра
10.04.2011, 03:00
Ну если знаком с пыхапе, то и флаг в руки:
http://www.flasher.ru/forum/blog.php?b=188

gaap5
10.04.2011, 11:24
На пхп самому написать не проблема конечно, но как-то не верится, что задача, которая у меня возникла в самом начале изучения as3, до этого никем не была дюжину раз реализована.
Гугл выдает разве что http://projects.stroep.nl/ValueObjectGenerator/, но естественно хотелось бы генерить сразу много классов на основе одной yml-ки и распихивать их по папкам/проверять уже имеющиеся, а не копипастить каждый раз с вебсервиса.

fljot
10.04.2011, 15:15
Есть такое http://projectsprouts.org/

Котяра
10.04.2011, 17:57
На пхп самому написать не проблема конечно, но как-то не верится, что задача, которая у меня возникла в самом начале изучения as3, до этого никем не была дюжину раз реализована.

Странные задачи у вас возникают. Можете пояснить смысл? Де\сериализация?
Есть порты из java в as для graniteDS.
Да и вариант, который я вам показывал (http://www.flasher.ru/forum/blog.php?b=188) вполне рабочий. поменяйте источник входных данных из БД на XML и будет вам щастье.

Добавлено через 2 минуты
Есть такое http://projectsprouts.org/
А вот что это такое я так и не смог понять.. с чем это едят?

fljot
10.04.2011, 20:48
А вот что это такое я так и не смог понять.. с чем это едят?

Sprouts is a tool that helps you get a Flex development environment setup quickly, and helps automate development, testing, and deployment.

Sprouts is an open source project that uses Ruby to make Flex development easier. If you’ve ever used Ruby on Rails or a similar framework, you may be familiar with project generation. In fact the sprouts code generator, rubigen, was extracted from Rails. For those who are used to Java development, Sprouts can be likened to Maven.

Sprouts can not only generate a project, but fetch and install dependencies similar to a package management tool such as RPM. It will even install the Flex SDK and Flash debug player if you don’t have them installed. Sprouts provides wrappers around tools such as MXMLC and COMPC (and recently even FDB) to faciliate automation. It also helps encourage best practices such as unit testing by helping create a framework for executing tests with asunit and integrating with continuous integration tools such as CruiseControl.rb.

Вот только Flex можно заменить на Flash. Примеры интеграции с IntelliJ IDEA можно найти на youtube.

gaap5
10.04.2011, 21:01
Странные задачи у вас возникают. Можете пояснить смысл? Де\сериализация?

Задачи самые простейшие — написать любое приложение. А служебные куски кода, никакой логики не содержащие, загромождают любой класс.

За ссылки благодарю, действительно гранит и спрут генерить умеют, но как-то все дико неинтуитивно имхо, так что написать самому будет проще, чем разобраться (:

Пока накатал такой эскиз конфига: http://pastebin.com/4xDX9fW9,

Как будет время напишу сам генератор завернутый в бандлу Симфони2, работать будет и из под веба и из консоли, позже наверно добавлю интеграцию спрингаэкшнскрипта, можно будет даже полноценный вебсервис сделать с хранением всего в базе, но это уже меня понесло...

Bgg
10.04.2011, 21:09
Хм, наверно все, кроме flash программистов, генерируют постоянно тонны классов при написании приложений.

wvxvw
10.04.2011, 22:50
На самом деле я уже где-т когда-т об этом говорил :) Во флеше по причине засилия Виндовса как самой популярной ОС для разработок и инструментов, которые исторически никогда не поддерживали автоматическую кодогенерацию не сложилась традиция писать билд-скрипты, или скрипты-генераторы кода и т.п. Собственно, флеш не использовался в энтерпрайз секторе серьезно до последних 3-4 лет (4 - это с очень большой натяжкой). Т.е. даже очень большие проекты были по-сути курстарной работой. Так что не удивительно, что нет серьезных наработок в этой области.
Из инструментов автоматической кодогенерации, того, что я видел, на сегодняшний день - ничего интересного, в лучшем случае - интересные эксперименты, но ничего серьезного. Так что пишите сами, если нужно, по крайней мере это не "изобратать велосипед", его еще тут не изобрели. :)

ЗЫ. Из еще генераторов был вот такой вот: http://www.badgers-in-foil.co.uk/projects/metaas/ но проект не поддерживается очень давно, и код который он генерит не понимает Vector.<T> например, и есть какие-то баги, которые уже никто особо править не будет. (Мой знакомый когда-то пытался его использовать, собственно, хотелось заменить Velocity которая используется во флексовом компиляторе, но так ничем это и не закончилось).