「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 フレームワーク、 (サービスはデータのみをエクスポートする必要があるため、ビューは気にしないことに注意してください。ビューは、データを要求するクライアント側のみにあります)。
スキニーコントローラーのために、レールモデルは他のモデルに関係する必要がありますか?について読んだことがあります。しかし、可能であれば、この正確なトピックでの本/リンクの参照も含めて、より詳細に説明したいと思います.
私の質問を読んでくれてありがとう (: