首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协助监测代码质量

协助监测代码质量
EN

Stack Overflow用户
提问于 2015-03-13 15:43:58
回答 4查看 1.3K关注 0票数 3

我希望真正降低我的代码质量,作为一个新项目的开始。我认为我很容易在代码测试覆盖率、遵守ruby/rails约定和安全性方面出现许多错误。

我遇到过一些宝石,比如鲁波克和令人敬畏的重构Cop,它们返回关于违反约定和其他警告的信息。

我还一直在使用护卫宝石来根据测试监视代码中的更改。

我也见过codeclimate,但还不能为它提供资源。

建议使用哪些gems来生成哪些代码(我对rails/gems/库不太感兴趣)在合理的测试范围内?还有稍微宽泛的地方--是否还有其他受人尊敬的宝石/项目可以帮助提高我的代码质量。

或者更广泛地说--在检查您的代码是否具有足够的质量/安全性时,应该问自己哪些好问题(可能会帮助我将来搜索工具)!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-13 15:56:26

我自己用下面的。我发现rubycritic特别有用,我相信它是很多Climate背后的宝石。

sandi_meter不是我所使用的那么多,但强烈鼓励更小的方法。

我还强烈鼓励使用simplecov来帮助您评估代码覆盖率。代码覆盖率绝不是解决任何代码问题的灵丹妙药,但它至少可以确保您不会完全忽略代码段。

完整的清单:

代码语言:javascript
复制
  gem 'traceroute' # Checks for undefined routes and unreachable actions.
  gem 'bullet' # Checks for query optimizations.
  gem 'rails_best_practices' # Checks for code optimization.
  gem 'rubycritic' # Checks for code optimization.
  gem 'sandi_meter' # Checks for compliance to Sandi Metz's rules for developers.
  gem 'simplecov' #Enables coverage analysis of code.
票数 7
EN

Stack Overflow用户

发布于 2015-03-13 16:23:40

这里有几个问题,我会尽力解决每一个问题。

建议使用哪些gems来生成哪些代码(我对rails/gems/库不太感兴趣)在合理的测试范围内?

如果您想简单地测量测试覆盖率,那么simplecov是您最好的选择。

还有稍微宽泛的地方--是否还有其他受人尊敬的宝石/项目可以帮助提高我的代码质量。

这个答案有一个很好的清单,它可以帮助自动化代码质量检查。我会添加Thoughtbot的HoundCI项目作为另一个工具--一旦你把它推到GitHub上,它就会给你的代码添加注释.有点像机器人代码评审。开放源码项目是免费的。

或者更广泛地说--在检查您的代码是否具有足够的质量/安全性时,应该问自己哪些好问题(可能会帮助我将来搜索工具)!

我们在这里进入主观的领域,但我鼓励你们以务实的态度去争取一个A从代码气候或100%的测试覆盖范围。例如,如果你为美国宇航局工作,也许100%的测试覆盖范围是合理的.但是在你的web应用上,争取100%的测试覆盖率会导致为你不拥有的代码编写大量的测试(比如Gem或Rails本身)。我鼓励你看看杰伊·菲尔兹的有效地使用单元测试,看看这里更微妙(更有经验)的观点。

最终,您应该努力编写易于维护和更改的代码。Bob的书和讲座是一个很好的资源,您可以在他的网站上找到它。

票数 3
EN

Stack Overflow用户

发布于 2015-04-10 12:02:11

我最近遇到了超赞红宝石清单,它拥有各种优秀的宝石,但特别是关于代码分析和度量的一个很好的部分,他们建议:

代码分析和度量

代码语言:javascript
复制
gem 'Barkeep' # Barkeep is a fast, fun way to review code. Engineering organizations can use it to keep the bar high.
gem 'Brakeman' # A static analysis security vulnerability scanner for Ruby on Rails applications.
gem 'Cane' # Code quality threshold checking as part of your build.
gem 'Coverband' # Rack middleware to help measure production code coverage.
gem 'Flay' # Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored. Making this totally rad.
gem 'Flog' # Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.
gem 'fukuzatsu' # Complexity analysis tool with a rich web fron't# nd.
gem 'MetricFu' # A fist full of code metrics.
gem 'Pronto' # Quick automated code review of your changes.
gem 'rails_best_practices' # A code metric tool for rails projects.
gem 'Reek' # Code smell detector for Ruby.
gem 'Rubocop' # A static code analyzer, based on the community Ruby style guide.
gem 'Rubycritic' # A Ruby code quality reporter.
gem 'SimpleCov' # Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29036466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档