AppEngine (Java) と GWT を使用してアプリを設計しています。クライアント (GWT) とサーバー (AppEngine) の両方が作用するオブジェクトを表すクラスがあります。現在、私は AppEngine クラス (サーバー側のすべての情報を含む) と、クライアントが使用する (そして RPC 呼び出し間で渡される) 共有ディレクトリ内のクラスを持っています。ここで、2 つの間で変換し、サーバーとクライアントで必要なメソッドを再現するメソッドが必要です。これは頭痛の種であり、クラスがより複雑になるとバグが発生しやすくなります。
共有クラスを 1 つだけ作成しなかった理由は、サーバーのロジック、メソッド、および属性の一部をクライアントに公開したくなかったからです。しかし、GWT がコンパイルされると、コンパイルされたコードから未使用のメソッドと属性が削除されることを読んでいました。これは本当ですか?クライアントに表示されたくないコードは保護されますか? 注意すべき落とし穴はありますか? 属性は名前を難読化するので、あまり心配する必要はありません (私はそう思います)。サーバー データが RPC 呼び出しでクライアントに送信されないように、transient キーワードを使用できることはわかっています。
最良の方法は、GWTコンパイラーがこのメソッドをコンパイルしてはならないことを知らせるメソッドに付けることができる注釈です。これにより、コンパイルされたjavascriptに決して組み込まれないことがわかります。
最後に、コードを分離したままにしておくと、このような場合のベスト プラクティスはありますか?