首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >工具,用于扫描ruby代码文件以查找重复或类似的代码块。

工具,用于扫描ruby代码文件以查找重复或类似的代码块。
EN

Stack Overflow用户
提问于 2016-06-01 16:45:47
回答 2查看 807关注 0票数 3

有没有方法扫描红宝石文件的重复代码?

我有将近30个文件之间的200-1000行代码,我需要优化和重构他们。

我正在考虑将重复的代码移到一个可以跨所有文件使用的实用程序类中。

是否有某种扫描工具可以方便地查找和标记重复或类似代码块?

还是我必须咬紧牙关,用手来做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-01 20:19:27

您可以从文档中查看flay:https://github.com/seattlerb/flay

Flay分析代码的结构相似性。在文字值、变量、类、方法名称、空格、编程风格、大括号和do/end等方面的差异都被忽略。把这个做得太棒了。

或者,根据您的预算,您可以使用托管的静态代码分析服务之一创建一个帐户,并将您的代码推到那里进行检查。

票数 7
EN

Stack Overflow用户

发布于 2016-06-02 23:06:12

我们的CloneDR工具可以做到这一点;我们只是完成了一个Ruby。它寻找与一组约束相匹配的重复代码(关于大小、#变异点、匹配部分/总数的相似性等)。

下面是针对大多数Metasploit代码库运行的CloneDR示例。这是大约460 K的Ruby代码的SLOC;(至少) 14%的代码库是克隆的。

下面的第一张图片是摘要页。第二个例子是检测到的克隆(在该代码库中发现的大约3000个克隆之一);您可能希望在浏览器中单击这张图片,并使用"+“按钮使其更大一些,更容易看到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37574455

复制
相关文章

相似问题

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