Архив



injun #576871

27/12/2007

50 рублей для Джона Нэка из Adobe

Написано 27/12/2007

Только мы поругали Adobe за их плохое поведение, как Джон Нэк, один из креативнейших людей Adobe, научился говорить по-русски "Photoshop / ФОТОШОП", причём делает это как надо – с любящей интонацией. Смеялсо (с)! И вам советую -  балдёжный пост Джона.

10 советов по PureMVC

Написано 27/12/2007

Бороздя то, что должен бороздить каждый флэшер и флексер, увидел пост товарища Йенса Краузе с 10 советами по работе с PureMVC (Рост, аууу!!!):

10 tips for working with PureMVC

1. Think in (Pure)MVC

Как я начала использовать PureMVC? Очень коротко: только начав думать на (Pure)MVC! Кто в танке, то PureMVC – это классическая модель "Model-View-Controller". Используя Фасад (Facade-pattern) вы напрямую не задействуете "актёров", но каждый отдельный член PureMVC имеет свою чёткую и определённую роль (более подробно о MVC во флэше можете ознакомиться у товарища fla_master прямо вот по этой ссылке):

– Proxies = Модель
– Mediator и его ViewComponents = Представление
– Commands = Контроллер

2. Create an API for View Components

View Component должен представлять собой стандартный UI-компонент (например DataGrid) и ни в коем разе не используйте публичные методы напрямую. Лучше всего создавать API.

Одно из хороших возможностей PureMVC – это нейтральность в отношении использующейся технологии. Ну, например, я создам "pure" флэш-приложение, основанное на PureMVC без использования flex-фреймуорка. Потом это приложение будет портировано в AIR-приложение. ViewComponents изменятся flex-фреймуорком, но не медиаторы (mediator) и другие "актёры" PureMVC.

3. Use one Mediator for multiple View Components

Для большей координации используйте только один медиатор (mediator) для View Component. Другими словами: не все Views нуждаются в медиаторе (mediator). Например, возьмём ApplicationControlBar содержащий TextInput и Button или ещё что. Затем создадим один медиатор (mediator) для ApplicationControlBar, обзовём его ApplicationControlBarMediator и сошлёмся на несуществующий компонент…

4. Let’s Events bubble up

Что случится, если вы не хотите использовать несколько View Components с медиатором (mediator)? Да ничего – используйте для контроля пользовательского интерактива с несколькими View Components пузырьковые эвенты уноследованные от "деток" View Component.

5. Communicate using Notifications as often as possible

Уведомления PureMVC – это "Events". Для коммуникации между ярусами дерева Модели, Представления и Контроллера используйте Notifications для всевозможных сценириев "communication from -> to":

– Mediator -> Proxy
– Proxy -> Mediator
– Proxy -> Command
– Commands -> Mediator

И по возможности забудьте, что есть возможность изменять Proxy (Модель) через Mediator (Представление) без использования Command (Контроллера)!

6. Use Commands / MacroCommands as often as possible

Commands выполняют всю работу на стороне Контроллера: получают и взаимодействуют с Проксями, взаимодействуют с Медиаторами (mediators) и выполняют команды. Если команда исползуется однажды или имеет пару строк кода – используйте её везде, где возможно – для этого вам необходимо только отправить Уведомление и всё! В будущем, это позволит расширить возможности Commands для более комплексных действий. И, это важно, всегда помните того "актёра", что может изменять Прокси (Модель)! Также, используйте MacroCommands для выполнения нескольких SubCommands.

7. Use Remote Proxy to send and receive server-side data

Для отправки и получения данных между уровнями приложения воспользуйтесь Проксями, называющимися "Remote Proxies". Это не специальные Прокси PureMVC, это такие же про Прокси, но призванные организовывать серверные вызоры типа HTTPServices, RemoteObjects или чего-то ещё подобного.

8. Remove unused Mediators

В некоторых ситуациях вы больше не будете использоваться Медиатор (mediator) и его View Components. Так удаляйте его к чертям используя facade.removeMediator(MyMediator.NAME); также воспользуйтесь методом destroy() чтобы убить ViewComponent  его listeners, timer, references и etc.

9. The Power of VO’s (Value Objects)

View Components нет нужды знать, что такое Фасад, и вообще что-либо о приложении PureMVC. Это означает, что View Components не имеет доступа к Модели и данным, которые она хранит. Для того, чтобы обойти это и всё же ссылаться на данные, испоьзуйте Value Objects (VO). VO – это не "актёр" ядра PureMVC, но обладают flex-примочкой "Data Binding", что делает эти объекты очень мощными – можно изменять данные, не нарушая правил.

10. Courseware available

Клифф Холл выполнил всю работу – вы найдёте великолепную документацию:  "Framework Overview", "Best Practices" и "Conceptual Diagram". Ну и конечно же полезные Courseware!