我的主要目标是能够完全理解我正在使用的库/gem。我尝试在 Github 上从头到尾阅读源代码,但这真的很难。
我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem 方法的源代码。
例如,我想知道 Ruby on Rails 中的 redirect_to
方法是如何工作的:
- 如何查找
redirect_to
方法的源代码?- 我知道在 pry 中我可以执行类似
show-method method
的操作,但我如何才能对 Rails 框架中的方法执行此操作?
- 我知道在 pry 中我可以执行类似
- 您对我如何更好地理解 Gem 及其 API 有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。
谢谢!
最佳答案
RubyMine IDE 满足了我的这一需求。它具有这些功能,大大降低了阅读 gem 源码的阈值:
Gems 是项目树的一部分(在 External Libraries 伪目录中),因此您可以像处理自己的代码一样导航甚至编辑它们。
单键命令(在 Mac 上为 command-B)从一个标识符(模块/类名、方法名等)导航到它的声明,或者在有多个声明时调出一个列表供选择.它适用于您的代码和 gem 代码。
另一个命令(在 Mac 上为 option-command-O)允许您输入标识符名称以导航至上述位置。如果您输入的内容在您的代码中找不到,它会自动包含库代码;如果您输入的内容在您的代码中找到,您可以再次按下按键以包含 gem 代码。
调试器不断显示您正在执行的代码。您可以设置断点,而无需在需要的地方编辑代码。您可以检查实际执行的堆栈帧上方的任何堆栈帧。所有这些功能同样适用于您的代码和 gem 代码。
一般来说,RubyMine 的所有功能都适用于 gem 代码以及项目代码。
关于除了阅读源代码之外的理解 gems 的方法:大多数 gems 都记录在它们的自述文件中(我总是在 Github 上阅读),并且可能在 gem 的根目录或 doc 目录中的其他文档文件中。一些 gems(包括 Rails gems)有值得一读的 rdoc。但是,由于从 gem 的使用导航到它的代码非常方便,我通常先尝试它,然后在阅读实际代码之前阅读代码中的 rdoc(如果有的话)。 RubyMine 还可以在使用标识符的地方显示 rdoc(在 Mac 上按 F1),但我总是发现直接查看代码更容易。
关于ruby-on-rails - 浏览 Ruby 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37594502/