Бесплатно скачать Adobe Flash Player

Mate — швейцарский нож и компас в руках Flex-разработчика

По наводке Junik и Constantiner вчера вечером не пожалел час времени — почитал PDF-доку к Flex-фреймворку Mate и по этой доке за 15 минут собрал тестовый проект.

Поразительная простота и ясность применения без видимой потери эффективности — вот отличительные черты фреймворка Mate. Рекомендую попробовать каждому флексеру — вы не пожалеете. Помимо реальной оптимизации архитектуры флекс-проекта за счет централизованного учета событий в Карте Событий и распределения данных из Модели в Вид посредством Инъекторов, полчаса, потраченные вами даже на поверхностное знакомство с Mate, могут натолкнуть вас на собственные идеи; как минимум, у вас расширится часть сознания, отвечающая за архитектуру и фэншуй.

Главное: каждый Мате-проект имеет одно или более событие и одну или более Карту Событий (Event Maps). Проекты, не имеющие этого — это не Мате-проекты! (опасайтесь подделок :)

Мате — это швейцарский нож, и в нем есть куча готовых выдвижных лезвий: от автоматизированных вызовов всех актуальных типов удаленных сервисов и обработки результатов этих вызовов, до полезных смарт-объектов и прикольного дебаггера событий.

Флексеры, Mate — это для вас! Он предлагает вам не громоздкие классы, а компактные тэги.

Как еще его хвалить — не знаю. Читайте первые 7 страниц PDF-доки :-)

А сервер Mate лег, и я догадываюсь, почему — так работает внезапная популярность (digg-эффект?) Зайдите к ним попозже — или смотрите в кэше доброго гугля :-)

Писал: Rost, 4 Июль 2008 16:08

Комментарии:

Еще надо не забыть, что Mate не особо предлагает какую-то архитектуру, которой все обязаны следовать иначе кранты. Так как Mate естественным образом завязан на самые обычные события Flash-плеера, то сама его роль в приложении довольно естественна (бабблинг рулит). То есть это не хирургическая операция, которая обещает лучшую жизнь, а старый добрый косячок, который делает жизнь лучше используя силы самой матушки-природы :)

Также следует отметить, что есть Cairngorm или PureMVC все равно предлагают либо единый сервис/модель локаторы и единый диспетчер событий, либо единый фасад, то Mate сразу настроен на возможность использования любого количества event map'ов, что дает возможность легко и просто разбить систему на подсистемы :)

В общем, это бомба :)

Constantiner - 4 Июль 2008 16:51

В общем, это бомба :)

О да.

Рост - 4 Июль 2008 17:03

1. Может ли Mate работать не с Coldfusion, а с другими серверосторонними языками программирования?
2. Насколько я понимаю, чистый ActionScript проект с помощью Mate создать нельзя, т.е. утяжеление результирующего swf за счет Flex-компонентов неизбежно, даже если в аналогичном проекте без Mate можно (и не очень сложно) обойтись без них?

Elena - 5 Июль 2008 10:30

1. А какая разница? И где Вы прочитали слово Coldfusion в связи с Mate? :)
2. Mate - это Flex-фреймворк. То есть полностью. Ибо использует, в отличие от других, все преимущества именно Flex. Если проект не Flex, то и Mate не используется :)

Constantiner - 6 Июль 2008 20:27

1. Да не прочитала :). Просто увидела какой-то пример с Coldfusion, потому и тупой вопрос возник. В принципе, должно быть очевидно, что какие-то Coldfusion-файлы стоят для примера и на их месте может быть любой другой серверосторонний язык, но мне это показалось неочевидно.
2. Flex - это дело хорошее, но у нас просто приходится сплошь и рядом писать на чистом AS3 (преимущественно с помощью FlashDevelop), а компилить с помощью Flex компилятора. Пытаемся вфйти на модель, когда простой AS-компонент сможет пересобрать для своих целей даже PHP-разработчик, не загружая флэшера. Для небольших компонентов типа галерей, плееров и им подобных это вариант, но хотелось бы и для таких случаев швейцарский ножик... уже не говоря о том, что с помощью чистого AS3 можно компилить куда меньшие swf-ки - а это не такой уж пустяк, учитывая пользователей в медвежьих углах Баварии, очень не бедных, но скоростным Интернетом не обеспеченных.

Elena - 7 Июль 2008 0:05

Я начала изучение ActionScript в сентябре с того, что написала галерею на Flex. Наш тогдашний флэшер был доволен моим прогрессом, но недоволен размером исходного файла, попросил переписать на чистом ActionScript. Я повозилась, вышло совсем другое дело - флэшка оказалась всего-то порядка 20 кБайт - вместо изначальных 200.
Отсюда и вопросы.

Elena - 7 Июль 2008 0:09

Тоже прочитал доки по мотивам недавних постов в блогах. Явное помодульное разбиение событийних карт (контроллеров в MVC структуре) мне всегда нравилось, и всегда не нравилось отсутствие такового в пюре. Каирнгорм же до сих пор не использовал из-за навязывания огромного количества классов (по 3-4 на действие, в зависимости от совмещения или несовмещения команды и респондера). Выводы - есть стойкое желание писать следующий проект на MATE, ну и ждем pure AS3 вариант.

FSB - 7 Июль 2008 16:00

подскажите, как с помощью mate реализовать MVC?
1. в папке views есть вьюхи - в них генерятся события
2. в папке events есть карты событий. Как мне кажется, из них получаться хорошие контроллеры - они ловят события от вьюх, и вызывают соответсвующие классы и их методы. В том числе и серверные.
3. как сделать модели? Модель ведь должна быть статическим классом. При чём возникает вопрос - модель должна быть одна (как в карингорме) или несколько, как в нормальной реализации MVC - возможны множество моделей?
Может это уже как-то сделано в mate и я что-то пропустил?

ya - 8 Июль 2008 1:54

Выводы - есть стойкое желание писать следующий проект на MATE, ну и ждем pure AS3 вариант.

Хехе. А pure AS3 вариант MXML'а и data binding'а ты не ждешь? :)И не будешь потом говорить, что говно этот ваш Mate и data binding потому что требует множество писанины.

По мне сила Mate не в том, что он ориентирован на родные события и их диспетчеризацию. А именно в том, что это tag-based фреймворк. То есть - декларативный синтаксис. А его pure AS3 варианта быть по определению не может.

Constantiner - 9 Июль 2008 12:28

как сделать модели?

В одной из рекомендованных схем применения Mate для моделей используются так называемые менеджеры, которые вызываются из resultHandlers invoker'а серверного метода с помощью MethodInvoker. Там ответ с сервера обрабатывается и устанавливается в публичное свойство, доступное для binding'а. Оттуда публикуется во View с помощью инжектора. Так что менеджер не синглтонный. И их может быть сколько угодно.

Constantiner - 9 Июль 2008 12:34

Хехе. А pure AS3 вариант MXML'а и data binding'а ты не ждешь? :)

Для чистых AS3 проектов, нет готового микроархитектурного решения, к которому бы не было претензий, по крайней мере больших. Приходится каждый раз изобретать трехколесный MVC велосипед под каждый конкретный проект :)

И не будешь потом говорить, что говно этот ваш Mate и data binding потому что требует множество писанины.

тут не совсем понял мысль :)

По мне сила Mate не в том, что он ориентирован на родные события и их диспетчеризацию. А именно в том, что это tag-based фреймворк. То есть - декларативный синтаксис. А его pure AS3 варианта быть по определению не может.

pureMVC как раз не нравится своей абстрагированностью от языка, из-за чего даже были принесены в жертву нативные ивенты. Декларативный подход, для статической карты событий и обработчиков - пусть, карты всегда удобнее писать в виде списков, для которых использование xml на мой взгляд более прозрачно. Потенциально могут быть только проблемы с динамескими картами (например карта доступных сервисов приходит в динамике с сервера, в каирнгорме даже нет API для рантайм добавления новых сервисов в карту сервислокатора на этот случай, проходилось на начальных этапах дописывать, потом совсем отказались от каирнгорма), может быть ситуация, когда, например, тип события динамичекий или список обработчиков переменный, как там с этим борятся? Будем обсуждать дальше, после применения на реальных проектах, у меня такого опыта пока нет.

FSB - 10 Июль 2008 11:55

тут не совсем понял мысль

Я имел ввиду, что писать в чистом AS биндинг - по мне уж очекнь много писанины. И замена декларативных тегов процедурными вещами - тоже.

А смысл декларативного синтаксиса Mate (да и MXML) не в том ведь, что это XML, а в том, что ему реально соответствуют классы и возможен всяческий биндинг.

Constantiner - 10 Июль 2008 21:43



Подписаться на новости (RSS)




Примечания:
Статус документа
: в процессе
   2002-2009 Производство: Ростислав Сирык · О проекте · Подписка на новости (RSS)