2

在 Web 开发方面,我非常习惯于 ASP.Net 和 Java 世界。虽然我过去做过一些 PHP,但我发现在一个有大量开发人员的 jRuby on Rails 项目上工作有时会在两个人重构相同区域时非常意外地崩溃。

因此,一个人将 MethodA 重命名为 MethodB,而另一个引用 MethodA 的人在签入前不会更新。然后,直到有人专门再次运行该测试场景,我们才发现对 MethodA 的引用中断。

自然地,我们试图通过使用 rspec 和测试客户端的第三方应用程序的自动化测试来尽可能多地覆盖,但是有没有办法几乎“编译”或“验证”一个 Rails 应用程序以确保所有代码路径是正确的,并且没有错误的引用,使用了错误的类型等,就像典型的编译框架一样?

谢谢!

编辑:为了澄清起见,我理解当变量或方法意外地以动态语言重命名时,测试和更新不能总是让人们知道。我本质上是在寻找一种方法来验证 jRuby on Rails 应用程序,以确保没有任何东西被掩盖/遗漏。

4

1 回答 1

0

Ruby 作为一种动态的、鸭子类型的语言的性质使得以您所指的方式编译 Ruby 代码基本上是不可能的。也就是说,请参阅https://blog.gregbrockman.com/2012/01/static-analysis-in-ruby/

“...在入住前不更新”?您正在使用什么 VCS 允许这样做?

另外——如果再次运行测试发现错误,那不包括你想要编译的内容吗?您的开发人员不仅不更新就提交,他们也不先运行测试吗?

现在,如果您说对于未更新就提交的开发人员来说测试不会失败,因为他们没有(嗯)更新,那么大概他们的编译也不会失败,所以我认为编译不会有帮助.

于 2012-08-13T06:38:52.360 回答