плохая практика выделять все инструкции require в отдельный файл?
Вопрос
Если у меня есть целая куча требований в моем основном файле приложения:
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 из этих файлов в нескольких файлах, то да, это имеет смысл.
Таким образом, вы получаете доступ к одному дополнительному файлу и анализируете один дополнительный файл, но беспокоиться об этом - это действительно микрооптимизация.Если это сделает ваш код чище или просто более читабельным, тогда дерзайте.Это гораздо важнее, чем любые предполагаемые сохраненные циклы, если не читать ни одного файла с диска.
Если вы используете кэширование кода операции (APC, eAccelerator и т.д.), Даже теоретическая разница в значительной степени исчезает, поскольку вы выполняете безусловное включение.