问题标签 [code-duplication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
refactoring - 消除单个文件中的代码重复
可悲的是,我最近一直在做的一个项目有大量的复制和粘贴代码,即使在单个文件中也是如此。是否有任何工具或技术可以检测单个文件中的重复或接近重复?我有 Beyond Compare 3,它可以很好地比较单独的文件,但我在比较单个文件时不知所措。
提前致谢。
编辑:
感谢所有伟大的工具!我一定会检查出来的。
这个项目是一个 ASP.NET/C# 项目,但我使用多种语言,包括 Java;我对哪些工具(对于任何语言)最适合删除重复感兴趣。
java - Java从对象列表中获取每个对象中的属性列表时防止代码重复
我有几个看起来像这样的对象:
我希望能够获取其中任何一个对象的列表并获取特定属性的列表。如果我要为每个属性编写一个函数,这是一个微不足道的操作,但据我所知,多次重复代码是不好的做法。
所以我希望能够为任一对象中的任何属性做这样的事情:
我绞尽脑汁试图用泛型来做到这一点。我什至不确定这是否可能,但据我了解,使用 Java 编程语言可以完成很多神奇的事情。
f# - 避免 F# 中的代码重复
我有两个代码片段试图将浮点列表转换为 Vector3 或 Vector2 列表。这个想法是一次从列表中取出 2/3 个元素并将它们组合为一个向量。最终结果是一系列向量。
代码看起来非常相似,但似乎没有办法提取公共部分。有任何想法吗?
vb.net - 有什么工具可以检查重复的 VB.NET 代码吗?
我希望快速了解我们有多少“复制和粘贴”编码,有很多 C#/Java 工具可以检查这种类型的东西。有没有这样的工具可以很好地与 VB.NET 配合使用?
(我已经看到了很多重复的代码,但希望得到一些数字来帮助我整理出一个案例)
更新进度。
我刚试过猿猴。
- 它似乎无法生成我可以通过电子邮件发送的格式良好的报告
- 当局部变量或参数等的名称可能已更改时,它无法处理,例如,它仅匹配相同的文本行。
Clone Doctor不支持 VB.NET(仅 C# 和 VB 6 以及许多其他)
2010 年 10 月:VB.net 添加到 CloneDR 支持的语言中
Visual Studio 的克隆侦探仅支持 C#
SolidSDD - 源代码重复检测器仅支持 C、C++、C# 和 Java
DuplicateFinder是开源的,但在其他方面看起来很像 Simian,例如它只适用于文本行
ConQAT - 持续质量评估工具包 似乎有一个适用于 VB.NET 的克隆检测器(尚未尝试过)
Gendarme有点像 FXCop 并且有一个AvoidCodeDuplicatedInSameClassRule规则,这看起来很有前途,因为它避免了在文本级别工作的问题。 刚试了一下,是目前为止最好的解决方案,可惜搜索范围不大。
在声称此问题重复之前,请检查其他问题是否针对VB.NET,因为许多适用于C#的工具对VB.NET效果不佳。(但是,如果这个问题是真正的重复,我不会感到惊讶)
code-duplication - 如何让 Simian 生成一个漂亮的 HTML 报告,我可以通过电子邮件发送给团队中的每个人?
我试图发现重复代码的问题有多严重,因此我需要能够向团队中的每个人发送一份漂亮的报告(HTML、PDF 或 word),列出所有找到的重复项。
如何创建这样的报告?(在这个阶段,我只是在寻找一个临时解决方案来帮助确定问题的范围)
(我们的代码库在 VB.NET 中,我在 Windows 7 上运行)
refactoring - 你能容忍多少重复的代码?
在最近的一次代码审查中,我发现一个类中有几行重复的逻辑(少于 15 行)。当我建议作者重构代码时,他认为这样代码更容易理解。再次阅读代码后,我不得不同意提取重复的逻辑会稍微损害可读性。
我知道 DRY 是指导方针,而不是绝对规则。但总的来说,你愿意以 DRY 的名义损害可读性吗?
code-analysis - 是否存在自动查找复制粘贴代码的工具?
是否有工具可以在一组文件中自动查找复制和粘贴代码?
我正在考虑为此编写一个脚本,它只会搜索相等的字符串,但这样的脚本会发现大多数不相关的等式。(如private final static ...
)。
java - 删除java中的重复代码
我有两个类扩展了不同的 api 类。这两个类有一些重复的方法(两个类中重复相同的方法),如何删除这种重复?
编辑
ApiClass 和 AnotherApiClass 都不受我控制
wpf - 如何参数化 WPF 样式?
我正在寻找一种最简单的方法来删除我的 WPF 代码中的重复项。
下面的代码是一个简单的红绿灯,有 3 个灯 - Red
, Amber
, Green
。它绑定到具有一个枚举属性的 ViewModel,该属性State
采用这 3 个值之一。
声明 3 个省略号的代码非常重复。现在我想添加动画,让每个灯光都淡入淡出——样式会变得更大,重复会更糟。
是否可以使用State
和Color
参数对样式进行参数化,以便我可以在描述灯光行为的资源中使用单一样式,然后使用它 3 次 - 用于“红色”、“琥珀色”和“绿色”灯?
c# - 有没有办法删除这段代码中的重复
我有一个看起来像这样的方法:
我有另一种看起来像这样的方法:
有什么方法可以巩固这一点,因为唯一不同的是属性名称?