Я всегда чувствовал, что одна вещь, на которую можно рассчитывать, состоит в том, что люди, которые смотрят код после того, как Вы ушли, будут думать, что Вы - идиот. Ключевая вещь состоит в том, чтобы максимизировать время между тем, когда код сначала просматривается и когда они делают то определение.
Хорошее форматирование является одним способом увеличить N, полезные комментарии - другой.
Обычно (и, конечно, в примере с rake) файл appname.rb
является ярлыком, требующим множества других файлов. Если вы посмотрите на этот файл в проекте Rake на GitHub, большая часть того, что он делает, требует файлов в каталоге lib / rake
и включает модули по мере необходимости.
Основываясь на Ответ Эмили :
В некоторых проектах в этом файле выполняется автозагрузка
вместо require
. Последний фактически загрузит все классы, тогда как первый просто скажет системе загрузки классов, как их найти, если вы ссылаетесь на них без собственного оператора require
.
Таким образом, шаблон будет выглядит так:
# in foo_project/lib/foo.rb:
module Foo
autoload :Bar, 'foo/bar'
autoload :Baz, 'foo/baz'
end
# in foo_project/lib/foo/bar.rb:
module Foo
class Bar
...
end
# in foo_project/lib/foo/baz.rb:
module Foo
class Baz
...
end
Затем в своем проекте вы можете сделать следующее:
require 'foo'
# note: no require 'foo/bar' or 'foo/baz'
my_bar = Foo::Bar.new