Как работает система обмена сообщениями Parsley Framework? - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь использовать каркас петрушки в своем приложении Flex.Система обмена сообщениями - одна из лучших функций, которую я вижу при использовании петрушки,

Но у меня было сомнение,

Означает ли использование инфраструктуры Parsley в вашем приложении, что,

  1. Заменить каждый addEventListener() функционал на Messaging System Петрушки?
  2. Невозможно создать какие-либо объекты, используя new newObject();.Следует ли использовать инъекцию зависимостей вместо создания явных объектов?

Верны ли вышеизложенные сомнения?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Я работаю в месте, где я не могу выбрать инструменты для использования, и Петрушка - один из инструментов, который я бы не выбрал, если бы мне дали выбор.Если вы думаете о возможности отладки и тестирования своего проекта, инкапсуляции, модульного дизайна и т. Д. - избегайте использования «фреймворков микроархитектуры» любой ценой:)

Parsley, аналогично SWIZ, Mate, в меньшей степени Cairngorm и, возможно,другие, о которых я не имею глубоких знаний, полагаются на метаданные.Это добавляет много косвенности.Это означает, что вы не можете влиять или даже отлаживать то, что происходит не только «под капотом», но и в вашем собственном коде.Вы не знаете, когда и почему функция будет вызвана, но самое главное, почему она не будет вызвана.«Внедрение зависимостей» означает, что вы не сможете запускать модульные тесты для «внедренных» компонентов - потому что, «внедряя» их, вы создаете зависимость от всего, что у вас есть в вашем проекте.

В конце концовВ настоящее время вы пишете больше кода для обслуживания платформы, вы тратите на порядки больше времени на отладку и устранение недостатков инфраструктуры, приложение набирает вес и работает намного медленнее, чем без инфраструктуры.Через некоторое время, когда вы использовали фреймворк, код становится одним огромным непонятным беспорядком, который невозможно разделить на более мелкие части для обновления / замены.

Итак, если это не было очевидно :) Не используйте инъекцию, но делайтеиспользуйте addEventListener().

0 голосов
/ 13 марта 2012

Нет. Использование Parsley не означает, что вы должны / должны заменить всех слушателей событий сообщениями Parsley.

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

Вы МОЖЕТЕ отделить использование Flex Messaging, потому что события Flex могут проходить. Но: 1) Flex события проходят через список отображения, который не всегда то, что вы хотите 2) События Flex зависят от String, что может быть неприятно, если вы выполните рефакторинг или опечатки

Итак, ответ на оба ваших вопроса: Используйте события Parsley и объекты Parsley, только если вы хотите, чтобы Parsley управлял этими объектами. Что не всегда будет так.

Разделение может быть хорошим, но это может быть рутиной. В отличие от предыдущего ответа. Разделение отлично подходит для модульного тестирования. Это на самом деле делает это проще, потому что в теории все представляет собой единицу, не привязанную к другим единицам. Тот факт, что Parsley может ввести их для вас, не означает, что он ДОЛЖЕН сделать это для модульного тестирования.

На самом деле Flex построен на основе Injection. Существует разница между автоматическим впрыском и впрыском. Когда вы назначаете dataProvider для List, вы делаете инъекцию, просто вы делаете это вручную. Петрушка просто предлагает способ автоматически управлять инъекциями.

Однако, да, иногда вам может быть интересно, почему что-то не вводили, но не так сложно понять, почему.

Я написал серию постов, чтобы помочь людям начать работать с Петрушкой, зацените http://artinflex.blogspot.com/2010/09/quick-dive-into-parsley-intro-why.html это может быть полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...