私はいくつかのコントローラの一番上に同じコードを置いていることに気付きました。出力フィールドの説明、コントローラまたはモデルはどこに置くべきですか?
これはコントローラー内のいくつかの異なるアクションから呼び出すことにしますが、一般的にコントローラー外ではありません。プロパティにアクセスします。それはメソッドを呼び出します。不透明なオブジェクト(日付のようなもの)をフォーマットします。
私の質問は:このコントローラコード、またはモデルコードですか?
コントローラの場合:
- それは私のAPIを定義します。
- 現在、このモジュールでのみ使用されています。
- ここには論理がないようです。
モデルの場合:
- それはモデルが担当すべきデータの記述、のように思えます。
- 他のコントローラでこれを使用したいと思うかもしれません。まだそこにはいないが、これらの機能はまだかなり新しいので、そうかもしれない。
- 明確に属するオブジェクトに関数をアタッチすることは、モジュールレベルの関数として残すよりも優れているようです。
- モデルでより簡潔に定義できます。最上位のモデルオブジェクトを持つようなものが
.description()
を定義し、サブクラスはプロパティの黒/ホワイトリストを定義するだけでなく、メソッド自体をオーバーライドして関数を呼び出すようにします。私はコードの行数が少なくなることを確信しています('name': app.name
のようなものの繰り返しを節約するため)。これは良いことのようです。
本当の問題は、MVCはウェブ開発にはあまり適していないということです。 – plaes