1

デザインに少し問題があり、ここでアドバイスを求めることができればと思っていました. Grails が完全に間違ったツールである可能性があることを受け入れますが、それが人生です。

そのため、基本的にはGoogleスプレッドシートから多くの情報を表示し、いくつかの更新を返信するWebアプリに取り組んでいます. 私はそれのほとんどを機能させることができましたが、プロジェクト全体に散らばっている壊れたコードの多くの部分だけでなく、ばかげたスパゲッティ コードを取り除くために書き直すことにしました。

システムは比較的小規模で、ユーザーは 2 ~ 3 人です。データ量も少ないです。最大 500 行 (4 列) の 1 つのワークシートと、潜在的に 5000 (4 列) の別のワークシート。すべて小さいですが、Google スプレッドシートにとどまり、そこからアプリケーションにフィードするために必要です (まあ、それが必要です)。

これが機能するために必要な 3 つのクラスがあります。Google 認証クラスは、Google と対話するためのキーとトークンに関する情報を保持します。Google スプレッドシート クラスは、ソース スプレッドシートに関する情報を保持します。Google データ エントリは、一意の ID に基づいて 2 つのスプレッドシートからの情報を保持します。

ここに私の質問があります。これらのクラスを何として定義する必要がありますか。ドメイン クラスを使用すると思っていましたが、これらがデータベースに格納されていることに気付きました。2 人のユーザーが同じサーバーで同じアプリを使用できるが、お互いのデータを見ることはなく、ログアウト時にデータが破棄されるという、ドメイン クラスのセッション依存性を維持する方法はありますか。そうでない場合は、ドメインクラスと同様に機能するが、ユーザー/セッション固有のメモリに保持される、使用できる他のクラスがありますか。

4

1 に答える 1

2

これらのクラスの要件が正確に何であるかはよくわかりませんが、とにかくいくつかの考えがあります.

最初に、それらが .NET の「通常の」クラスではないかどうかを尋ねたいと思うかもしれませんsrc/groovy。ここで「通常」と言うのは、一部のデータと動作をカプセル化するだけであり、それらのインスタンスを作成し、必要に応じてメソッドを適切に呼び出す必要があるという意味です。

ただし、一部のデータと動作をユーザー セッションに結び付けたい場合 (セッション依存のドメイン クラスを要求したため、そのように思われます)、セッション スコープで Grails サービスを使用することをお勧めします。これを行うと、Grails はアプリケーションのセッションごとにサービスの異なるインスタンスを使用し、同じセッションが終了するまで同じインスタンスを再利用します。

また、セッション スコープを持つ 1 つのサービスを使用し、コントローラーからサービスへ、またはその逆に渡すデータを表す他のクラスを使用して、それぞれを少しずつ使用することもできます。たとえば、検証とデータバインディングが必要な場合、これらは実際にはコマンドオブジェクトである可能性があります。

于 2013-10-22T12:03:14.583 に答える