这篇文章主要介绍了我是如何把ruby gem contracts.ruby速度提升10倍的。
contracts.ruby在我项目里用来添加代码合约(code contracts)到Ruby中。看起来差不多是这样的:
Contract Num, Num => Num
def add(a, b)
a + b
end
只要add方法被调用,参数和返回值都会被检查。
20秒
本周末,我对该库进行了测试,发现其性能非常糟:
这是在随机输入下,运行1000次以后的结果。
所以,当给一个函数加
Ruby评论
RubyCritic是一个宝石,它包装了诸如 , 和类的静态分析宝石,以提供有关Ruby代码的质量报告。
目录
总览
此gem具有以下功能:
您的项目概述:
项目文件的索引及其各自的气味数量:
检测到的气味指数:
分析如下代码时:
class Dirty
def awful ( x , y )
if y
screen = widgets . map { | w | w . each { | key | key += 3 } }
end
隐藏的很好
Deep Cover旨在成为Ruby代码的最佳覆盖工具:
更准确的线覆盖
分支机构覆盖
可以用作内置Coverage库的直接替代品。
它报告您的代码使用情况更准确。 特别是,只有且仅在完全执行以下一行时,该行才被视为覆盖:
def foo(something: false)
bar if something # => This is considered covered by builtin coverage,
# ev