すべてのrequireステートメントを別のファイルに取り除くのは悪い習慣ですか?

StackOverflow https://stackoverflow.com/questions/1408565

  •  05-07-2019
  •  | 
  •  

質問

メインアプリファイルに必要なものがたくさんある場合:

require 'a'
require 'b'
require 'c'
require 'd'
require 'e'
require 'f'
require 'g'
require 'h'
require 'i'
require 'j'

これらの必要なものをすべて取り除き、必要なものすべてを実行する別のファイルに入れるのは悪い習慣でしょうか?「 all_requires.rb 」と呼びましょう-それで私は言うことができます:

require 'all_requires'

このアプローチを他の人のコードで見たことがないので、おそらく理由があるのでしょうか?

役に立ちましたか?

解決

それ自体は本当に悪いことではありませんが、Rubyの場合、一般的に大きな利点はないようです。手元のファイルが依存しているものを隠し、別のレベルの間接参照を追加します。また、条件付き要求ではそれほどうまく機能しません。次のようにするのがより一般的です:

DEPENDENCIES = %w(a b c d e f g h i j k)
DEPENDENCIES.each {|f| require f}

この方法で、 require 行の膨大な列を避けながら、ローカライズおよび宣言を維持します。

他のヒント

すべてのファイルを明示的に要求する主な理由は、それだけです-通常、明示的にするのは良いことです。このようにして、コードを読んでいる他の人(または、数か月後にあなた)は、何が起こっているのかを見つけるのが簡単になります。

必要なものが他のファイルにある場合、どこから物が来ているのかを知るのはかなり難しくなります。

複数のファイルでこれらのファイルの10個すべてを一般的に必要とする場合、それは完全に理にかなっています。

この方法で1つの余分なファイルアクセスと1つの余分なファイルの解析を行っていますが、それを心配するのは本当に最適化です。コードがきれいになるか、読みやすくなる場合は、それを選択してください。これは、ディスクから1つのファイルを読み取らないことで、知覚される保存サイクルよりもはるかに重要です。

オペコードキャッシング(APC、eAcceleratorなど)を使用すると、無条件のインクルードを行っているため、理論上の違いはほとんどなくなります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top