2010-06-28 50 views
1

我準備重組& reffactory Flash Builder應用程序。 reorg的目標是1.)儘可能快地爲我正在開發的項目部分保留編譯時間,2)爲代碼重用保留不相關的部分。如果存在折衷,目標#1勝過目標#2。爲編譯性能組織Flex應用程序的最佳方法?

目前,該應用程序有資產在一個項目中,在另一個項目中的核心功能AS3,並鏈接到其他兩個第三個項目的MXML。

將資源/代碼移入swc庫有助於編譯時間嗎?將資產編譯成swf並將其嵌入到主應用程序中怎麼樣?任何其他技術?

回答

0

我們有同樣的問題,應用程序的編譯時間超過1分鐘。

這裏是我們的解決方案:

  1. 有一個核心庫包含核心類的靜態屬性,如:Core.resourceManager:IResourceManagerCore.stringManager:IStringManager
  2. 主要應用項目包括核心庫和爲所有Core.someProp提供實施。這可以通過一些隱藏的方法來完成,如Core.setImpelentation()
  3. 有很多模塊使用核心庫到顯示器/邏輯嚮應用數量不受限制。重要提示:
    1. 每個模塊是一個獨立的Flash Builder項目
    2. 模塊連接核心圖書館外(它包含在主要的應用程序)
    3. 模塊具有XML的文件,描述它,例如它的名稱和圖標的應用控制欄。它不允許在啓動時加載所有模塊。
    4. 用戶應該能夠選擇他想使用的模塊。這也將有助於你的發展。
  4. 您可以選擇創建lib庫並在其中包含的模塊之間常見的,可以使用核心庫中實現的所有類。

結果令人難以置信 - 您的應用程序變得低耦合,開放/編譯時間減少,API變得更加清晰。利潤!

0

正如Maxim所描述的那樣,模塊絕對是這裏的方法。而且他的意見,這是全固態,這裏的一些其他提示:

  • 提取風格通過一個單獨項目,並編譯的CSS的SWF。在運行時加載SWF。
  • 結構化你的包按業務職能首先,MVC角色第二,

    例如:不是com.myapp.model.userconfig.UserOptions,使用com.myapp.userconfig.model.UserOptions。強制該軟件包只能引用他們的兄弟姐妹,或com.myapp.core.*

    這樣,每個包都是一個自包含模塊,它只引用自己或核心庫。

  • 考慮Hellfire Compiler,可耕種的編輯在多個CPU的並行
  • 如果沒有準備好,考慮移動到Flex 4 SDK,其中有幾個編譯器的性能改進,尤其是在編譯多個SWC的。
相關問題