3

私は学生で、自分の時間に Rails を学んでいます。これまでのところ、標準的なデータベース操作のみを実行する単純なアプリケーションを開発できました。現在、私は自分の知識を増やし、単純なデータベース スキンではなく、実際に "何かを行う" アプリケーションを作成する方法を模索しています。

専門家がどのようにそれを行っているかを確認するために、オープンソースの Rails アプリケーションをいくつか見てみることにしました。このサイトで推奨されているものの 1 つはTracksでした。私は簡単にソース コードを調べて、一部のコントローラーが非常に大きいことにショックを受けました。たとえば、todos コントローラーは 1400 行を超えています。これは正常ですか?このコードをリファクタリングして別の場所に配置する必要がありますか? もしそうなら、それはどこに置かれるべきですか?それとも、このような非常に大きなコントローラーを持つのは普通ですか?

4

2 に答える 2

1

これについては、さまざまな意見や見方があります。 「ファット モデル、スキニー コントローラー」は人気のあるものであり、Ruby on Rails コミュニティの多くの人が購読しています。オブジェクトが特定の属性と特性を提供することが理にかなっている場合、ある程度、多くのコードをモデルに含める必要があります。

テストを開始する (TDD を実行するなど) と、テストを作成するときに、誰が/何がどのように振る舞うべきかという正しい質問が提示されるため、コントローラーに属するものとモデルに属するものを理解するのに大いに役立ちます。

これに関する@dhhによる良い投稿http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns

于 2013-04-03T03:13:43.287 に答える
1

一般的に言えば、このような大きなコントローラを持つことは悪い習慣です。

通常、ロジックは可能な限りモデルに移動する必要があります。これに関する良い記事: http://www.sitepoint.com/10-ruby-on-rails-best-practices/

私のコードスタイルを改善するのに非常に役立つ「rails best practice」と呼ばれる優れた宝石がありますhttps://github.com/railsbp/rails_best_practices-move-model-logic-into-the-model )

于 2013-04-03T03:17:16.293 に答える