2012-10-22 9 views
9

一部のモデルでは、他のモデルを先にロードする必要があります。しかし、それぞれの必要なファイルは一度だけロードする必要があります。Rubyでrequireを使用するためのベストプラクティスは何ですか?

これを管理する最適な方法は何ですか?すべてのrequire行をファイル(init.rbなど)に入れるか、各モデルファイルの先頭にファイルが必要ですか?

+0

リンクはもう少し古いですが、回答には何も言われていませんが、まだ役立ちますhttp://blog.8thlight.com/micah-martin/2007/10/08/micah%27s-general-guidelines-on -ruby-require.html – jtzero

答えて

11

の各オプションを評価してみましょう:

  1. これは、個々のファイルがrequireとして、すっきりことを意味します(init.rbのような)ファイル内のすべての必要とする回線

    を入れてすべてが一つの場所にあります。ただし、書かれた順序が重要なので、このファイルで依存関係の解決を効果的に行うことができます。

  2. は、各ファイルには少しより多くのコンテンツを持っています各モデルファイルの先頭にファイルが必要ですが、それぞれのファイルを明示的にそれが必要とする依存関係を必要とするので、あなたは注文を心配する必要はありません。同じファイルに対して複数回呼び出すrequireは効果がありません。

    これは、コードの一部のみを必要とすることもあり、ライブラリに便利です。例えばrequire active_support/core_ext/date/calculationsは、外部アプリが必要とするライブラリの一部だけを取得します。

2つのうち、2番目を選択します。よりクリーンで、思考が少なくて済むので、コードをもっとモジュラーにすることができます。

2

それぞれのファイルについて、そのファイル内のファイルはすべてrequireです。各ファイルは一度だけ必要であるため、他のファイルと重複しても問題ありません。それがrequireメソッドの目的です。

関連する問題