Pergunta

Se eu tiver um monte de necessidades no meu arquivo de aplicativo principal:

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

Seria uma prática ruim colocar a retirada de tudo isso exige e colocá -los em um arquivo separado que apenas faz tudo o que é necessário - vamos chamá -lo 'all_requires.rb' - Então eu posso apenas dizer:

require 'all_requires'

Eu nunca vi essa abordagem no código de outras pessoas, então talvez haja uma razão?

Foi útil?

Solução

Não há nada realmente errado com ele, mas geralmente não parece haver muito benefício para isso em Ruby. Ele esconde o que o arquivo em questão depende e apenas adiciona outro nível de indireção. Também não funciona tão bem com exigências condicionais. É mais comum fazer:

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

Dessa forma, você evita o enorme trem de require Linhas, mas ainda mantêm -as localizadas e declarativas.

Outras dicas

O principal motivo para exigir todos os arquivos explicitamente é exatamente isso - normalmente é bom ser explícito. Dessa forma, alguém que lê seu código (ou você, meses depois) terá mais facilidade em descobrir o que está acontecendo.

Se suas necessidades estiverem em outros arquivos, pode se tornar bastante difícil saber de onde vêm as coisas.

Se você geralmente exigir todos os 10 arquivos em vários arquivos, sim, isso faz todo o sentido.

Você está fazendo um acesso extra ao arquivo e analisando um arquivo extra dessa maneira, mas se preocupar com isso é realmente microtimização. Se tornar seu código mais limpo ou apenas mais legível, vá em frente. Isso é muito mais importante do que qualquer ciclos salvos percebidos, não lendo um arquivo do disco.

Se você usar o cache do OpCode (APC, Eaccelerator, etc), mesmo a diferença teórica desaparece, pois você está fazendo incondicional.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top