我希望真正降低我的代码质量,作为一个新项目的开始。我认为我很容易在代码测试覆盖率、遵守ruby/rails约定和安全性方面出现许多错误。
我遇到过一些宝石,比如鲁波克和令人敬畏的重构Cop,它们返回关于违反约定和其他警告的信息。
我还一直在使用护卫宝石来根据测试监视代码中的更改。
我也见过codeclimate,但还不能为它提供资源。
建议使用哪些gems来生成哪些代码(我对rails/gems/库不太感兴趣)在合理的测试范围内?还有稍微宽泛的地方--是否还有其他受人尊敬的宝石/项目可以帮助提高我的代码质量。
或者更广泛地说--在检查您的代码是否具有足够的质量/安全性时,应该问自己哪些好问题(可能会帮助我将来搜索工具)!
发布于 2015-03-13 15:56:26
我自己用下面的。我发现rubycritic特别有用,我相信它是很多Climate背后的宝石。
sandi_meter不是我所使用的那么多,但强烈鼓励更小的方法。
我还强烈鼓励使用simplecov来帮助您评估代码覆盖率。代码覆盖率绝不是解决任何代码问题的灵丹妙药,但它至少可以确保您不会完全忽略代码段。
完整的清单:
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.发布于 2015-03-13 16:23:40
这里有几个问题,我会尽力解决每一个问题。
建议使用哪些gems来生成哪些代码(我对rails/gems/库不太感兴趣)在合理的测试范围内?
如果您想简单地测量测试覆盖率,那么simplecov是您最好的选择。
还有稍微宽泛的地方--是否还有其他受人尊敬的宝石/项目可以帮助提高我的代码质量。
这个答案有一个很好的清单,它可以帮助自动化代码质量检查。我会添加Thoughtbot的HoundCI项目作为另一个工具--一旦你把它推到GitHub上,它就会给你的代码添加注释.有点像机器人代码评审。开放源码项目是免费的。
或者更广泛地说--在检查您的代码是否具有足够的质量/安全性时,应该问自己哪些好问题(可能会帮助我将来搜索工具)!
我们在这里进入主观的领域,但我鼓励你们以务实的态度去争取一个A从代码气候或100%的测试覆盖范围。例如,如果你为美国宇航局工作,也许100%的测试覆盖范围是合理的.但是在你的web应用上,争取100%的测试覆盖率会导致为你不拥有的代码编写大量的测试(比如Gem或Rails本身)。我鼓励你看看杰伊·菲尔兹的有效地使用单元测试,看看这里更微妙(更有经验)的观点。
最终,您应该努力编写易于维护和更改的代码。Bob的书和讲座是一个很好的资源,您可以在他的网站上找到它。
发布于 2015-04-10 12:02:11
我最近遇到了超赞红宝石清单,它拥有各种优秀的宝石,但特别是关于代码分析和度量的一个很好的部分,他们建议:
代码分析和度量
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.https://stackoverflow.com/questions/29036466
复制相似问题