2009-03-01 2 views
1

Учитывая, что Flex по-прежнему является относительно молодой технологией, уже существует множество архитектурных фреймворков для разработки Flex/AIR (и Flash), основными из которых являются Cairngorm и PureMVC. Объем архитектурных каркасов примечателен по сравнению с другими технологиями.Используете ли вы архитектурные рамки для разработки Flex/AIR?

Мне было интересно, как многие из вас используют архитектурные рамки для разработки Flex. Если да, то почему, или почему нет, если вы не используете?


Чтобы поделиться своим собственным опытом и точку зрения: я использовал Cairngorm (и ARP для разработки флэш) на различных проектах, и обнаружили, что иногда нам нужно писать дополнительный код только, чтобы вписаться в рамки, которые, очевидно, не чувствовали себя хорошо. Хотя я не использовал PureMVC во многих случаях, у меня такое же чувство кишки, глядя на примеры приложений.

Архитектурные рамки в равной степени относятся к религии. Большинство последователей убеждены, что их рамки являются основой и не являются открытыми или очень скептическими, когда речь заходит об использовании других структур. (Я также сомневаюсь и скептически проверяю новые рамки, но это в основном потому, что я предпочел бы дождаться, пока реклама не закончится.)

В заключение я думаю, что лучше иметь хорошее знание шаблонов и практик, которые вы можете применить в своем приложении, вместо того, чтобы выбирать структуру и придерживаться ее. Нет простого права или неправды, и я не верю, что когда-нибудь будут рамки, которые считаются святым Граалем.

ответ

1

Прежде всего, я должен сказать, что я использую PureMVC больше года, и я должен сказать, что я очень доволен результатами. Вы правы, что плохо придерживаться рамки, но вы должны знать, когда использовать фреймворк, а когда нет.

2

Flex сама по себе довольно приятная структура компонентов, и Flash имеет очень простую модель событий. Эти две вещи могут помочь вам в разработке приложений Flex.

Я написал два больших приложения с Cairngorm в Flex 2 дня, и я не могу рекомендовать его. Он раздутый, чрезмерно абстрагированный и требует слишком много кода, чтобы делать даже простые вещи. Тот факт, что люди пишут инструменты генерации кода для Cairngorm, я думаю, доказывает, что для этого слишком много. Cairngorm также проблематичен тем, что он в значительной степени опирается на Singleton, что в основном является неприятным способом использования глобальных переменных в ООП. MVC не обязательно должен быть таким сложным, и в конце концов, это всего лишь несколько шаблонов, которые помогут в организации кода и извлечения бизнес-логики из вашего кода пользовательского интерфейса. Это можно легко сделать без рамки, используя определенную дисциплину.

Для меня очень интересны решения IoC, которые начинают проникать в сообщество. Я думаю, что фреймворк Flex должен развиваться, так что для контейнеров IoC/DI проще подключиться к жизненному циклу компонента. Значение, которое могут предоставить эти инструменты, огромно по сравнению с тем, что вы когда-либо могли бы получить из структуры MVC.

2

Я использовал фреймворки все время в мои Java-дни, но за последние два года я работал над несколькими продуктами на основе Flex, и для любого из них не было формальной архитектурной «структуры» - основной инженеры просто пристально следили за хорошим дизайном. Flex (в немалой степени способствовавший выразительности MXML) хорошо подходит для правильного расслоения приложения.

С учетом сказанного, я должен полностью согласиться с brd6644 - было несколько раз, когда я хотел, чтобы у нас были некоторые возможности, предлагаемые контейнерами IoC/DI.

2

Использую Mate. Он легкий и очень простой в настройке и понимании. Как и Spring, он не является навязчивым и хорошо документирован. Если Cairngorm - кувалда, то Mate - Leatherman. Он имеет преимущество даже для тривиальных приложений, хотя бы для устранения большого количества кода шаблона.

3

Я использовал PureMVC для нескольких проектов, но также играл с Swiz, Mate и MVCS совсем немного. Я изучил Cairngorm, но не использовал его для каких-либо реальных проектов.

Заключение вашего сообщения, безусловно, стоит на своем значении: это действительно «лучше иметь хорошее знание моделей и практик», чем просто «выбрать структуру и придерживаться».

ОДНАКО, работая в команде с менее опытными разработчиками, гораздо проще (и быстрее), чтобы получить их до скорости, говоря, «этот проект построен на рамочном X, прочитайте документацию рамочный», чем ожидая, что они освоят теорию и применение хороших шаблонов и практик в разумные сроки.

Я рассматриваю эти рамки как хорошее знакомство с дизайном приложений и разделением проблем и нахожу их очень полезными в командной среде. Тем не менее, я считаю, что хороший контейнер IoC и несколько шаблонов дизайна могут достичь тех же результатов, в то же время быть более легкими и гибкими.

0

Свисс - самый легкий выбор. Все, что я видел (прежде всего Cairngorm/PureMVC/Mate), по-прежнему имеет много кода или XML-раздувания, чего я хочу избежать. Я не верю в замену раздувания кода XML-раздуванием, просто дайте мне некоторые инструменты, чтобы сделать работу с меньшим количеством работы!