1

「Articles」、「Jobs」、「Workers」などのモデルが存在するサーバー アプリケーションでは、

たとえば、これらのモデルがあるサーバー側アプリでは次のようになります。

  • 製品
  • ジョブ
  • 労働者

そして、次のことを行う start job のようなアクションがあります。

  • 製品: ジョブの製品の要求数量が増加しました
  • ジョブ: ジョブが挿入されます
  • ワーカー: ジョブのワーカーは使用不可に設定され、現在のジョブへの参照が保存されます

ここで私の質問は、上記のロジックをどこに配置すればよいですか?

  • モデル「job.start(args...)」のメソッドを呼び出す「jobs/start」という名前のコントローラーが必要ですか。このモデル メソッド内で、「product.increaseRequestedQuantity(args...)」と「worker.setBusy()」を呼び出します。

  • 「job.start(args...)」、「product.increaseRequestedQuantity(args...)」、「worker.setBusy()」を呼び出す「jobs/start」という名前のコントローラーが必要ですか?

どちらがベスト プラクティスなのかはよくわかりません。最初はモデルが他のモデルを認識していますが、ロジックが中心です。2 番目のモデルでは、モデルは互いを直接認識していませんが、ロジックはより分散されています。また、ジョブに「start」という名前のメソッドがあると、アプリケーション レベルでジョブを開始する (つまり、製品とワーカー モデルを変更する) と想定されますが、モデル レベルで影響を与えます (ジョブ モデルのみを変更することを意味します)。製品とワーカー モデルを変更せずに)。

この問題とこの関心の分離についてどう思いますか?

これは、特に Rails について話しているわけではなくても (サービスは Rails のコントローラーのようなものである node.js のサービス + モデルに基づく私自身のフレームワーク)、または他の MC フレームワーク、 (サービスはデータのみをエクスポートする必要があるため、ビューは気にしないことに注意してください。ビューは、データを要求するクライアント側のみにあります)。

スキニーコントローラーのために、レールモデルは他のモデルに関係する必要がありますか?について読んだことがあります。しかし、可能であれば、この正確なトピックでの本/リンクの参照も含めて、より詳細に説明したいと思います.

私の質問を読んでくれてありがとう (:

4

0 に答える 0