- 我对Ruby非常陌生,你能否给出最佳实践来分离文件并包含它们。
- 文件布局的首选设计结构是什么?何时决定将算法分离到新文件中?
- 何时使用load来包含其他文件,何时使用require?
- 当包含文件时是否会有性能损失?
谢谢。
我每个类都会创建一个文件,除了那些小的助手类,它们不需要其他文件。我还会将不同的模块分别放在子目录中。
load
和 require
的区别在于,require
只会加载一次文件,即使被多次调用,而 load
则无论之前是否已经加载过都会再次加载。你几乎总是要使用 require
,除非在 irb
中,当你想要手动重新加载文件时才使用 load
。
我不确定性能损失如何。当你 load
或 require
一个文件时,解释器必须解释该文件。大多数 Ruby 会在被 require 后将其编译为虚拟机代码。显然,require
在文件可能已经被包含一次时更具有性能优势,因为它可能不需要再次加载它。