Объективно, каковы плюсы и минусы Cairngorm по сравнению с PureMVC?

Есть так много причин, по которым использование фреймворка MVC в Flex скачет, но выбор правильного кажется сложным. Мне интересно, что вы все думаете о своем опыте реализации того или иного (или другого).

Сэм


person Sam Reynolds    schedule 20.09.2008    source источник
comment
Этот вопрос уже задавался: stackoverflow.com/questions/37043/flex-mvc-frameworks   -  person Theo    schedule 20.09.2008


Ответы (1)


Вопрос уже задавался, однако, поскольку вы спрашиваете конкретно о преимуществах Cairngorm и PureMVC, эти мои мысли:

  • И PureMVC, и Cairngorm затрудняют написание тестируемого кода. В основном это связано с использованием глобальных переменных, которые плотно связывают код вашего приложения, что затрудняет изоляцию какой-либо части для тестирования. Это больше относится к Cairngorm, чем к PureMVC, но оба они довольно плохи.

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

  • Cairngorm полон антишаблонов, таких как интенсивное использование глобальных переменных, PureMVC скрывает худшие части себя.

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

Короче говоря, Cairngorm - это VisualBasic Flex, он работает, но научит вас множеству вредных привычек. PureMVC не так уж плох, просто он не очень хорошо подходит для написания приложений Flex.

Я думаю, вам следует обратить внимание на Mate, который полностью использует потенциал Flex, но он не построен. вокруг глобальных переменных. Вместо этого он помогает вам писать слабо связанный, тестируемый, повторно используемый и обслуживаемый код без тяжелых и ненужных зависимостей от платформы, которые вы видите в других платформах приложений.

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

person Theo    schedule 20.09.2008
comment
Вы того же мнения о расширенной пирамиде? umcairngorm.riaforge.org - person Srikar Doddi; 10.06.2009
comment
Расширения Универсального Разума подобны помаде на свинье. Они являются улучшением по сравнению с ванильным Cairngorm, но проблемы фундаментальные, а не поверхностные. Расширения единой системы обмена сообщениями делают Cairngorm более удобным в использовании, чем отсутствие инфраструктуры приложений вообще (что не относится к обычному Cairngorm), но не более того. - person Theo; 12.06.2009