1

Rails のベテランが Stack Overflow でこれについて何と言っているかを知りたいです。

基本的に、Rails の初心者として、またプログラミングの「正式な」バックグラウンドを持たない人として、私の最大の課題の 1 つは適切なアーキテクチャに関係しています。アプリを作成するのに何が正しいか、またはより良いかを知るにはどうすればよいですか?

いくつかのリソースが何であるかを知りたいです。

私は基本的なものを知っています - しかし、これらの多くは私が望む高レベルのアーキテクチャの概要を私に与えません:

http://www.amazon.com/Agile-Development-Rails-Third-Edition/dp/1934356166/ref=cm_lmf_tit_7 http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177 /ref=cm_lmf_tit_3 レール キャスト

簡単な例を次に示します。

マーチャントとショッパーを含む Rails アプリを構築しているとします。ユーザーの各セットには、独自の認証、異なるアクセス許可などがあります。これに対して単一のアプリを構築するのが適切でしょうか、それとも API を介して通信する複数のアプリを構築するのが適切でしょうか? このマルチアプリの抽象化には、さらに利点がありますか?

ありがとう!

4

1 に答える 1

3

これは簡単な質問ではありません。完全な答えは、プロジェクトによって大きく異なります。

あなたがスターターであれば、すべてを 1 つのアプリにまとめておくことをお勧めします。モデルを賢く使用して十分な「分離」を行うことができます。アプリ間通信によってもたらされる複雑さが有益なシナリオを想像するのは困難です。

あなたの例では、マーチャントとショッパーに 1 つの親モデルを使用する方がよいか、2 つの別個のモデルを使用する方がよいかを自問する必要があります。

前者の場合、STI を考慮することができます。

  • ユーザー (メインクラス、 として定義class User < ActiveRecord::Base)
    • マーチャント ( として定義class Merchant < User)
    • 買い物客(同様にclass Shopper < User

詳細については、STI の Google を参照してください。

次に、コントローラー/ビューで、次のようにアクセス許可をすばやく確認できます。

if user.class == Merchant
  do_something
else
  do_something_else
end

同様に、2 つのクラスは異なるアルゴリズムで認証される場合があります。必要に応じて、基本 User クラスに「標準」認証を含め、サブクラスに特化することもできます。

乾杯、

于 2013-04-18T01:23:57.237 に答える