0

アプリケーションのディレクトリを正しく構成する方法を知りたいです。私は GWT (GWTP も) と GAE を使用しており、Web サイト (「通常モード」) とその管理 (「管理モード」) を持っています。だから私は次のことをしました:

  • ソース
    • コム
      • mananaセグロ
        • クライアント
            • 管理者
              • アプリ
              • ページ1
              • ページ2
              • ウィジェット
              • 等...
            • 正常
              • アプリ
              • ページ1
              • ページ2
              • ウィジェット
              • 等...
            • エラー
            • 認証
      • 資力
      • 等...
    • サーバ
      • ガイダンス
      • ハンドラ
        • 管理者
        • 正常
    • 共有
      • アクション
        • 管理者
        • 正常
私は現在 GWTP と GWT と GAE を学んでいるので、すべてが完全ではありません (ドメイン名...)。主にダウンロードするアプリのサイズを小さくするため、さまざまなモジュールを使用することについても読みましたが、Web 上で簡単な例を見つけました。プロジェクトのディレクトリ構造は非常に重要だと思うので、誰かが私を助けてくれるといいですね。ありがとうございます。

4

1 に答える 1

0

私は GWT を使用して比較的大きなアプリケーションを構築し、Google のベスト プラクティスに従っています。はい、動作することがわかりました。通常、GWT People は MVP に教えてくれます。

MVP は、アプリケーション開発全体を管理するのに役立つピースにアプリケーションを分離します。

通常、MVP を使用する場合、アプリケーションには以下を含むエントリポイントが含まれます。

public class Contacts implements EntryPoint {

  public void onModuleLoad() {
    ContactsServiceAsync rpcService = GWT.create(ContactsService.class);
    HandlerManager eventBus = new HandlerManager(null);
    AppController appViewer = new AppController(rpcService, eventBus);
    appViewer.go(RootPanel.get());
  }
}

ご覧のとおり、クライアント側の RPC、イベントを通知するためのイベントバス、ルートであり、ビューの変更、イベントへの登録など、アプリケーション内のすべてを制御するアプリケーション コントローラーを作成します。

アプリケーション コントローラーはValueChangeHandler<String>、履歴がいつ変更されたかを認識し、これに基づいてビューの変更などのアクションを実行できるようにするための実装も行います。次に、次のようになります。

  1. モデル
  2. ビュー
  3. 発表者

モデルはサーバーと共有可能です。プレゼンターは、ビューが実装するインターフェースを宣言します。次に、プレゼンターとビューがインターフェイスを介して対話し、プレゼンターとサーバーが対話rpcServiceし、エントリ ポイントで宣言してアプリケーション コントローラーに注入します。

また、この方法でアプリケーションを実装すると、テストに JUNIT を使用すると、プレゼンターのみをテストできるため、ビューをバイパスできるため、メリットがあります。ビューをテストに含めると、多くの時間がかかるためです。 . ビューはウィジェットを宣言しますが、プレゼンターはウィジェットと対話するためにビューからインターフェースをインポートできます

最終的に、アプリケーション階層は次のようになります。

--com.example.name.clients:

--AppController --name.java
--name.Service.java
--name.ServiceAsync.java

--com.example.name.events:

--com.example.name.presenters:

--com.example.name.views:

--com.example.name.models:

--com.example.name.server:

--com.example.name.shared:

詳細については、こちらをご覧ください。

于 2012-05-10T08:17:23.477 に答える