Лучший способ организовать приложение Flex для производительности компиляции? - PullRequest
1 голос
/ 28 июня 2010

Я готовлюсь к реорганизации и реорганизации приложения Flash Builder.Цели реорганизации: 1.) сохранить время компиляции для той части проекта, над которой я работаю, как можно быстрее, 2.) оставить отдельные части для повторного использования кодаЦель № 1 превосходит цель № 2. Если есть компромисс.

Поможет ли перемещение ресурсов / кода в библиотеки SWC компилировать время?Как насчет компиляции ресурсов в SWF и встраивания их в основное приложение?Любые другие методы?

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

Модули, безусловно, способ пойти сюда, как описал Максим.В дополнение к его совету, который является полным, вот несколько других советов:

  • Извлечение стилей в отдельный проект и компиляция .css в SWF.Загрузите SWF во время выполнения.
  • Сначала структурируйте свои пакеты по бизнес-функциям, затем по роли MVC,

    Например: вместо com.myapp.model.userconfig.UserOptions используйте com.myapp.userconfig.model.UserOptions.Убедитесь, что пакеты могут ссылаться только на своих братьев или сестер, или com.myapp.core.*.

    Таким образом, каждый пакет представляет собой автономный модуль, который ссылается только на себя или на библиотеку ядра.

  • Рассмотрим Компилятор Hellfire , который может обрабатыватьваша компиляция с несколькими параллельными процессорами
  • Если это еще не сделано, рассмотрите возможность перехода на Flex 4 SDK, в котором есть несколько улучшений производительности компилятора, особенно при компиляции нескольких SWC.
0 голосов
/ 28 июня 2010

У нас была такая же проблема, время компиляции приложения было больше 1 минуты.

Вот наше решение:

  1. Существует Библиотека ядра , которая содержит класс Core со статическими свойствами, такими как: Core.resourceManager:IResourceManager, Core.stringManager:IStringManager и т. Д.
  2. Основное приложение * Проект 1015 * включает в себя Core Library и обеспечивает реализацию для всех Core.someProp. Это можно сделать с помощью какого-то скрытого метода, например Core.setImpelentation().
  3. Существует неограниченное количество модулей , которые используют базовую библиотеку для добавления своего отображения / логики в приложение. Важный:
    1. Каждый модуль - это отдельный проект Flash Builder
    2. Ссылка на модуль Базовая библиотека как внешняя (она включена в Основное приложение)
    3. Модуль имеет XML-файл, который описывает его, например, его имя и значок в панели управления приложения. Это позволяет не загружать все модули при запуске.
    4. Пользователь должен иметь возможность выбирать, какие модули он хотел бы использовать. Это также поможет вам в разработке.
  4. При желании вы можете создать Lib Library и включить в нее все классы, которые являются общими для модулей и могут быть реализованы с помощью Core Library.

Результат невероятный - ваше приложение становится слабосвязанным, время открытия / компиляции уменьшается, API становятся более понятными. Прибыль!

...