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のようなフレームワークは、モジュール以上にアーキテクチャを定義するのに役立ちます。私はモジュールに焦点を当てて停止し、アーキテクチャを見て、あなたがそれらを必要とするかどうかを見てみましょう。
フロントエンドにもっと複雑なビジネスロジックがあると思う場合を除いて、私は一般的にも同意します。これは、より流動的なユーザーのやりとりを可能にし、バックエンドとの通信を切断できる場合です。つまり、私が必要とするすべてのデータをワンショットで取得し、フロントエンドでフィルタリングすることができれば、ビジネスロジックが賢明であるということは、ある場所で起こらなければならないという考え方に縛られているよりも、明白な問題は、ビジネスロジックのどこにエラーが存在するかを見つけることで最終的にはより良いユーザーエクスペリエンスに集中することになります。 – shaunhusain
私はここで完全に同意する、シャンフーサイン。私は通常、より大きなデータをフロントエンドに持ち込み、フィルタリングや並べ替えを処理するために中間層やバックエンドを使用するのではなく、フィルタリングする方が好きです。バックエンドへの往復回数が少ないことは、エンドユーザーの操作性を向上させる大きな方法の1つです。 –