问题标签 [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.

0 投票
1 回答
6655 浏览

visual-studio-2010 - 在 Visual Studio 2010 中检测重复代码

Clone Detective 是在 VS 2008 中查找重复代码的绝佳工具。

是否有任何工具可以查找集成到 VS 2010 中的重复代码?

*克隆侦探看起来不像正在积极开发1 2

0 投票
4 回答
1924 浏览

c++ - 模板参数、#define 和代码重复

我有很多这样的代码:

我想用模板参数替换#defines:

但是我不想只为依赖于参数的几行复制 A<0>::f() 和 A<1>::f() 的 A::f() 的几乎整个代码。我也不想调用函数而不是以前的#ifdefs。常见的解决方案是什么?

0 投票
1 回答
342 浏览

refactoring - VB的代码重复重构工具

我需要一个非常具体的 VB(或多语言)工具。我想我会问一个是否已经存在,然后我开始自己制作一个(可能是在 python 中)。

我需要的:

  • 该工具必须以递归或非递归方式爬取路径,搜索扩展名列表,例如 .bas、.frm、.xxx
  • 然后,它必须解析这些文件,搜索函数、例程等。
  • 最后,它必须输出它找到的东西。

我基于“减少代码冗余”的想法,在这种情况下,糟糕的程序员会创建很多功能相同的功能,有时名称相同,有时不同。有4种情况:

  • 案例一:同名,同内容。
  • 案例2:同名,不同内容。
  • 案例3:名称不同,内容相同。
  • 案例4:差异名称,差异内容。

所以,输出应该是这样的

这是为了让您了解我需要什么。

所以,问题是:是否有任何工具可以完成类似的事情???

PS:是的,我们应该首先编写好的代码,但是,你知道,事情发生了。

0 投票
4 回答
1886 浏览

c# - 如何在没有多重继承/代码重复的情况下在 Pages 和 Masterpages 之间共享代码?

我已经阅读了解释C# 中没有多重继承的问题/答案,我们甚至不需要它,而且它会导致太多问题。

现在,我正在做一个项目,我真的不明白如何在没有多重继承、不重复代码的情况下做事。

这是情况。有一个网站,其主页和其他页面继承自母版页(主页不继承自)。页面和母版页都在执行一些操作:自定义登录、统计信息、加载用户自定义设置等。目前,解决方案很糟糕,因为这些任务的源代码只是复制了两次

主页类继承自Page. 另一方面,母版页继承自Masterpage. 从逻辑上讲,从一个公共类继承也很好,但它是多重继承,所以这是不可能的。

那么该怎么做呢?

我想了几种方法,但不喜欢它们:

  • 创建一个将从 page/masterpage 类调用的独立类。例如bool isDisplayingTips = this.CurrentUser.IsDisplayingTips,我不写,而是写bool isDisplayingTips = this.SharedObjects.CurrentUser.IsDisplayingTips。我不喜欢它,因为它要写更长的时间。

  • 创建一个“真实的”、空的、通用的母版页,并从中继承主页和母版页。它不仅需要编写更多代码来访问母版页参数,而且还会减慢速度,每次请求都需要额外的母版页。

任何的想法?

0 投票
4 回答
1386 浏览

php - 识别 PHP 项目中的重复代码

我在一个遗留项目中有一个至少几千行长的 PHP 文件。它主要由大约 10 种情况的 switch 语句分成许多不同的条件块。在每种情况下,似乎都有一个非常相似(如果不是完全重复的话)的代码块。我可以使用哪些方法将这些代码块识别为相同或接近相同,以便我可以抽象出该代码并开始重构整个文件?我知道这在非常手动的术语中是可能的(将代码中的每个 case 语句分成单独的文件和 Diff),但我对可以使用哪些工具来加快这个过程很感兴趣。

谢谢。

0 投票
1 回答
424 浏览

c++ - 避免代码重复(常量正确性)redux

我在这里阅读了这个关于const 正确性的问题。thisScott Meyer 解决方案似乎是一个很好的解决方法,但是如果您有一个使用指针的成员函数(需要 const 和非 const 版本)怎么办。如果成员函数是const然后this自动表示,这会使在大部分代码所在的地方 const this很难有一个函数。const

我想到的一种可能的解决方法是简单地this将对 const 函数的引用作为参数传递,因此该函数可以使用该引用而不是直接使用this指针。但是,这样安全吗?它似乎是安全的(如果非常 hacky),因为您实际上并没有const_cast在 const 对象上使用。相反,您只是const通过向其传递对象的非常量引用来规避成员函数提供的合同。

例如:

这似乎提供了一种很好的方法来避免在需要函数的 const 和非 const 版本时复制大量代码,但这安全吗?或者它会以某种方式导致未定义的行为?

0 投票
1 回答
3509 浏览

java - 在 Spring MVC (3.0) 中,如何将两个 URL 路由映射到同一个处理程序方法?

我有userPanel一个映射到/user/panelURL 路由的方法:

但是,我也希望在不创建单独的方法的情况下userPanel处理路由/panel的方法,例如:

有没有办法让userPanel方法处理两条路线以避免重复?

0 投票
1 回答
1489 浏览

php - 避免重复代码 (PHP)

作为一名系统管理员,我偶尔会做一些简单的临时编程。我正在努力学习,所以总的来说,下面的代码中是否有任何东西让你觉得是不好的做法或其他不必要的?

具体来说,最后的 3 个 if 语句感觉就像我在不必要地复制代码。有没有办法在不过度复杂的情况下进一步缩短它?

0 投票
4 回答
4953 浏览

javascript - javascript中的代码重复

是否有任何工具可以检测 JavaScript 中的代码重复?我尝试了“PMD 重复代码检测器”,但它不支持 .js 扩展名。

0 投票
5 回答
319 浏览

language-agnostic - 干燥还是不干燥?关于避免代码重复和保持内聚

我有一个关于代码重复和重构的问题,希望它不是太笼统。假设您有一小段代码(约 5 行),它是一系列函数调用- 不是一个非常低的级别。这段代码在几个地方重复,所以在这里提取一个方法可能是个好主意。然而,在这个特定的例子中,这个新函数会受到低内聚性的影响(其中表现出来的就是很难为函数找到一个好名字)。其原因可能是因为这个重复的代码只是更大算法的一部分 - 并且很难将其划分为命名良好的步骤。

在这种情况下你会建议什么?

编辑:

我想把这个问题保持在一般水平,这样更多的人可能会发现它很有用,但显然最好用一些代码示例来支持它。该示例可能不是有史以来最好的示例(它在很多方面都闻起来),但我希望它能发挥作用: