Объективно, каковы плюсы и минусы Cairngorm по сравнению с PureMVC? - PullRequest
1 голос
/ 20 сентября 2008

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

Sam

1 Ответ

13 голосов
/ 20 сентября 2008

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

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

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

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

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

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

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

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

...