Life is a game. Let's play >
ruseng
Избавляя разум от всей ненужной работы, хорошая нотация позволяет сосредоточиться на более сложных проблемах и в конечном счёте повышает интеллект человечества. (Альфред Нойт Уайтхед)

Не изобретать велосипед

Современные флеш-сайты по процессу разработки во многом напоминают веб-приложения, выполняющиеся на стороне сервера и классические десктопные приложения, выполненные в программах, подобный C ++ Builder. Это сходство переносится и на процесс разработки:

1. Приложение разделяется на визуальную часть и код. Визуальной частью занимается дизайнер с навыками флеш-анимации, программной частью занимается профессиональный программист, имеющий опыт работы в том числе и с Adobe Flash.

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

2. Часть программного кода в общих чертах имеет смысл реализовать как абстрактные классы и затем использовать в каждом проекте. Набор абстрактных классов объединяется в некоторую структуру абстрактного флеш-приложения, которая не меняется коренным образом от сайта к сайту, а лишь обретает новые формы и видоизменяется.

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

Это даёт возможность подстраиваться под изменения в техническом задании с наименьшим ущербом для сроков и стоимости проекта.

Asket - Action Script 2.0 Framework

Результатом описанного выше подхода к разработке флеш-сайтов стал собственный каркас для проектирования флеш-приложений - Asket.

За основу были взяты концепции разделения содержания и представления, разработка приложений на основе форм, шаблон проектирования "Модель-Представление-Контроллер". Отличительными особенностями флеш-сайта как MVC-приложения являются:
  • редуцированный компонент "Модель" (в нашем случае Qubix CMS предоставляет данные в форме, которая, как правило, не требует никакой дальнейшей обработки);

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

  • контроллер для группы разделов представляет собой метод (методы) родительской формы. Для основных разделов родительской формой является класс App, для подразделов родительской формой является класс формы соответсвующего раздела

Преимущества

Начинающие программисты, заглядывая в различные каркасы проектирования, в том числе и в Asket, часто говорят, что могут сделать то же самое меньшим колличеством кода. Тем не менее, существует ряд преимуществ, которые даёт хорошо продуманная и проверенная на многих проектах модель проектирования:
  • общее пространство имён для классов, методов и свойств - это позволяет организовать коммандную работу над проектом на основе соглашений об именовании и осуществлять поддержку уже созданных проектов другим разработчиком с минимальными накладными расходами;

  • стандартная структура для типовых проектов - не нужно каждый раз заново реализовывать одно и то же с нуля;

  • предсказуемый результат - проверенная структура взаимодействия быстрее реализуется и требует меньше времени для отладки.