2010-12-02 31 views
2

私は実際にプロジェクトのアーキテクチャーのプロセスにいます。私たちはMateフレームワークを選択しました。プロジェクトはそれほど複雑ではありませんが、モジュールを選択すると、MXMLよりもどのような利点が得られますか?MXMLコンポーネントアーキテクチャ上のフレックスモジュール

Main App - > Views - > Events - > Maps - > Services [PHP or Java] 

私はモジュールベースのアーキテクチャを思い付くとき、良いことのようですが、私はそれが密結合して解決するために、後頭を壊すことがあり、不要な問題で終わるべきではありません疑います。私は、MXMLコンポーネントの上に モジュールを選択した場合、私は入手できますか何の利点

Main APP - > Modules - > Module Interface -> Events - > Maps - > Services 
[PHP or Java] 
  1. フレックスを設計する方法 アプリケーションは何ですか?
  2. アプリケーションが と通信しているので、フロントエンドをより複雑にするには が必要ですか?
  3. サンプルベースのプレビューのためのモジュール がありますか。または、 は良いアーキテクチャを定義しています。

答えて

4

探しものを見つけるだろうと思いますあなたのもの。いずれにしても、あなたの質問にお答えしてください:

MXMLコンポーネントでモジュールを選択するとどのような利点がありますか?

モジュールは、複数のアプリケーションにまたがって再利用する機能の一部として使用する必要があります。 KensoDevが言及したようにモジュールを使用する利点は、コードを書き直したり複製したりすることなく他のアプリケーションでも使用できることです。もしあなたが設計しているアプリケーションがスタンドアローンになり、機能のどれも再利用されないなら、私はまっすぐなMXMLを使うでしょう。

Flexアプリケーションを設計するにはどのような方法が適していますか?

本当にアプリに依存します。 Mateを使用して構築したアプリケーションのほとんどはMXMLベースであり、モジュールは使用していませんが、モジュールを使用することは意味があります。それはすべて、プロジェクトの要件が何であるかによって異なります。

アプリケーションがバックエンドと通信するので、フロントエンドをより複雑にする必要がありますか?

私は、できるだけシンプルにUIを作成し、中間層やバックエンドで大変な作業をしています。あらゆるプロジェクトの目標は、ユーザーの生活をより簡単に、より便利にすることです。言い換えると、ユーザーに提示されるフロントエンドは複雑ではありませんが、基本的なビジネスロジックとバックエンドの作業が可能になります。

サンプルプレビュー用のモジュールベースのArchiectureや、適切なアーキテクチャを定義したサンプルがありますか。

メイトは、プロジェクトをどのように構成しているかについて、sample projects available for you to lookを持っています。役に立つ場合は、通常、次のようなプロジェクトを構成します。

src 
| 
|_assets (Images or other assets go here.) 
| 
|_ApplicationName 
    | 
    |_events (Your custom Mate events go here.) 
    | 
    |_maps (Your Mate Maps go here.) 
    | 
    |_model 
    | | 
    | |_managers (Your Data Managers go here. Most of the data processing from the back end happens here.) 
    | | 
    | |_vo (Your Value Object classes go here.) 
    | 
    |_ui 
    | 
    |_components (MXML components go here. Typically these are your "Front End" components.) 
    | 
    |_presenters (Your Presentation Models go here. Think of them as the "code behind" classes for your front end components.) 
    | 
    |_renderers (Any custom item renderers for lists of data grids go here.) 
    | 
    |_skins (Any custom skins for your components go here.) 
    | 
    |_views (Your application Views go here.) 

私はこれが役立つことを願っています!

+0

フロントエンドにもっと複雑なビジネスロジックがあると思う場合を除いて、私は一般的にも同意します。これは、より流動的なユーザーのやりとりを可能にし、バックエンドとの通信を切断できる場合です。つまり、私が必要とするすべてのデータをワンショットで取得し、フロントエンドでフィルタリングすることができれば、ビジネスロジックが賢明であるということは、ある場所で起こらなければならないという考え方に縛られているよりも、明白な問題は、ビジネスロジックのどこにエラーが存在するかを見つけることで最終的にはより良いユーザーエクスペリエンスに集中することになります。 – shaunhusain

+0

私はここで完全に同意する、シャンフーサイン。私は通常、より大きなデータをフロントエンドに持ち込み、フィルタリングや並べ替えを処理するために中間層やバックエンドを使用するのではなく、フィルタリングする方が好きです。バックエンドへの往復回数が少ないことは、エンドユーザーの操作性を向上させる大きな方法の1つです。 –

4

モジュール:モジュールでの作業の利点モジュールはあなたにスリムthinerアプリケーションを取得し、あなたがページ/タブを開いたときにアプリケーション

Notherの利点にモジュールをロードした、アプリケーションの重量でありますモジュールがDRYの場合、コードを2回書くなどの必要なく、複数のアプリケーションにモジュールを持つことができます。

ベット方法:これは本当にあなたのアプリケーションの問題です、それについての絶対的な真実はありません。あなたがバックエンドを持っている場合、バックエンドは、アプリケーションのサービス層になります、: 私は

にそれはアプリごとに本当に特定の複雑なクライアント側のモジュールと任意のモジュール、および他の多くの軽量化とシンプルなのない巨大なアプリがありますモデル、ビュー、コントローラ/コマンドを作成する必要があります(おそらく)。

これは、フレックスアプリケーションを今すぐ作成するための最良の方法です(IMHO)。

モジュールのサンプル:ポトマックのためのGoogleは、私はあなたがyour'e私はメイトのフレームワークを使用して、いくつかのFlexアプリケーションを構築してきましたが、私の環境では、おそらく少し異なっているが http://www.potomacframework.org/

+0

さらに別のフレームワークを使用できますか?それはあまりにも多くのフレームワークで生命を乱してしまいます。実装されているフレームワークなしでアーキテクチャの例を教えてください。 – Thalaivar

+0

これは、一見単純なタスクを達成するために使用されているフレームワークの量でもあります。私はこの投稿のほとんどに同意しますが、これは非常にプロジェクト固有の質問です。私は、モジュールをここで機能の一部を更新するために、アプリケーションのロールアウト後に展開できることを考慮する必要があると思いますメインアプリケーションを再コンパイルせずに)、モジュールが共有されることにも注意してください。最適化が失われるので、swf A + Bは同じコードを含むswf Cよりも大きくなります。 – shaunhusain

2

MXMLコンポーネントでモジュールを選択するとどのような利点がありますか?

モジュールとコンポーネントは2つの非常に異なるものです。モジュールは、WindowsではDLL、JavaではJarファイルのようなものです。その中には、実行時にロードおよびアンロードできるコードセクションがあります。そのため、モジュールには1つ以上のMXMLコンポーネントを含めることができます。 MXMLコンポーネントの使用に代わるものではありません。モジュールを使用するかどうかにかかわらず、MXMLを使用してアプリケーションを構築します。残念なことに、モジュールには、JavaのJarファイルと同じくらい簡単に動作しない他の多くの「機能」が満載されています。

彼らは彼らの上下にあります。あなたはコードを読み込んだりアンロードしたりすることでメモリ占有量を減らすことができますが、最近ではバイトコードサイズがメモリ膨らみの主原因ではありません。実際には、ステートメントがヒープを使用してメモリを上げる方法です。 SWCを使用するモジュールなしでプロジェクト間でコードを簡単に共有することも、共有SVNプロジェクトを通じて単純な共有コードを作成することもできます。

他のモジュールの欠点は、プログラム内でより多くの境界線を作成することです。モジュール内のオブジェクトを参照することは問題になります。モジュールを使用するオブジェクトは、モジュール内で定義されたオブジェクトを参照することはできますが、逆もできません。したがって、モジュールをどのように構成するか注意しないと、そこに属していないモジュールにコードをダンプすることになります。

明らかにモジュールが必要な場合は、モジュールとリファクタの使用をやめます。モジュールは、オーバーヘッドを開発する際のオーバーヘッドを、使用開始後に上昇させるだけです。

Flexアプリケーションを設計するにはどのような方法が適していますか?

MVCまたはMVCS。モデルビューコントローラまたはモデルビューコントローラサービス。何人かの人がハングアップするコマンドはコントローラよりも優れていますが、実際にはコマンドはコントローラメソッドが1つしかないコントローラです。それは退化的なコントローラーです。私はコントローラが好きです。なぜなら、コマンドが指示するように全く新しいクラスではなくメソッドを追加するだけで、コントローラに新しいコマンドを追加するのは非常に簡単だからです。コントローラを追加すると、画面、サブシステムなどの共通の機能をグループ化することができます。コントローラの細かい粒度を選択できます。また、コントローラが大きすぎると簡単に分割することができます。

MVCSはフレームワークなしでは簡単ですが、フレームワークを使用することは、チームがアプリケーションの組み立て方法を理解するのに役立ちます。また、オープンソースのソフトウェアは、フレームワークを文書化するのに非常に良い仕事をしているので、フレームワークに関する多くの低レベルの質問に答える必要はありません。良い選択肢はスウィズ、パセリ、またはメイトです。しかし、ほとんどの人はメイトとカイングホルムからスウィズやパセリに移っています。 Caringormは今後FYIでParsleyになります。

プレゼンテーションモデルパターンは、その作品があなたの研究にどのように役立つかを見て、より多くの単体テストをしたいときに役立ちます。私は単体テストではありますが、コントローラとモデルは、ビューまたは統合テストの従来のQAを実行します。 QAははるかに簡単です。

アプリケーションがバックエンドと通信するので、フロントエンドをより複雑にする必要がありますか?

フロントエンドでどの程度の複雑さを処理するかを決める必要があります。バックグラウンド処理はFlexの弱点なので、時にはバックエンドに渡すのが理にかなっています。私はフロントエンドにどのくらいの仕事が入っているかに驚かれると思います。 FlexはRIAなので、フロントエンドで正常に動作するようになりますが、どこで何をするのが理にかなっているかを判断する必要があります。

私の提案は、フロントエンドがJSONまたはAMF(Blaze DS)を使用してバックエンドで簡単なサービスを呼び出すことです。サーバープッシュのようなものが必要な場合は、ActiveMQにFlex用のコネクタがあるため、ActiveMQを使用できます。

サンプルプレビュー用のモジュールベースのアーキテクチャはありますか、それとも優れたアーキテクチャを定義した例がありますか。

モジュールとアーキテクチャは相互に影響を受けますが、モジュールを使用しても、明確なアーキテクチャがあるわけではありません。あなたはコードをダンプするだけのバケツを持っているだけです。モジュールはあなたのコード内の責任や組織を指定することはありません。私が言ったように、モジュールはDLLのようなもので、DLLベースのアーキテクチャは表示されません。 Swizのようなフレームワークは、モジュール以上にアーキテクチャを定義するのに役立ちます。私はモジュールに焦点を当てて停止し、アーキテクチャを見て、あなたがそれらを必要とするかどうかを見てみましょう。

関連する問題