在Ruby中使用require的最佳实践是什么?

12
一些模型需要先加载其他模型。但每个所需文件只需加载一次。
最好的管理方式是什么?把所有require行都放在一个文件中(如init.rb),还是在每个模型文件顶部require文件?

链接有点老,略微重申了答案中所说的内容,但仍然有用。http://blog.8thlight.com/micah-martin/2007/10/08/micah%27s-general-guidelines-on-ruby-require.html - jtzero
2个回答

12

让我们评估每个选项:

  1. 将所有的require语句放在一个文件中,比如init.rb

    这意味着每个单独的文件都会更简洁,因为所有的require都在同一个地方。然而,它可能会发生它们编写的顺序有所影响,因此你最终实际上需要在这个文件中手动解决依赖关系。

  2. 在每个模型文件的顶部引用所需的文件

    每个文件会有更多的内容,但是你不必担心排序,因为每个文件都明确地要求了它所需的依赖项。对同一文件多次调用require没有任何效果。

    这也意味着你可以仅仅引用你代码的某些部分,这对于库非常有用;例如: require active_support/core_ext/date/calculations 只获取外部应用程序所需的库的那部分。

在这两个选项中,我会选择第二个。它更清晰,需要更少的思考,并且使你的代码更加模块化。


2
对于每个文件,需要在该文件中使用require引用它所依赖的所有文件。即使与其他文件存在重复,也不会有任何影响,因为每个文件只需要被引用一次。这就是require方法的目的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接