311得票21回答
如何消除相似的const和非const成员函数之间的代码重复?

假设我有以下的`class X`,我想返回对一个内部成员的访问权限: class Z { // details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) {...

149得票11回答
重复的代码在单元测试中是否更容易被容忍?

我一段时间前犯了一个错误,当我重构单元测试以使它们更加DRY时,我毁掉了几个单元测试--每个测试的意图不再清晰。似乎在测试的可读性和可维护性之间存在权衡。如果我在单元测试中保留重复的代码,它们会更易读,但是如果我改变SUT,我就必须追踪并更改每个重复代码的副本。 你认为这种权衡存在吗?如果是...

87得票13回答
如何在开发过程中检测代码重复?

我们有一个相当庞大的代码库,有400K行的C++代码,并且代码复制是一个问题。是否有任何工具可以有效地检测重复的代码块? 理想情况下,开发人员可以在开发过程中使用此工具,而不仅仅是偶尔运行以查看问题所在。如果我们能够将这样的工具与CruiseControl集成,每次提交后都能给出报告,那就更...

71得票3回答
通过注解在IntelliJ IDEA中抑制重复警告

自从15版本以来,IntelliJ警告我代码有重复。 在某些情况下,这可能是有意为之的,因此我想通过使用@SuppressWarnings注释来忽略/抑制此警告。但是,正确的值是什么? 编辑:我不是要像问题在Intellij中禁用重复代码检测是否可能?那样完全禁用这种检查。

54得票13回答
你能容忍多少重复的代码?

在最近的代 码审查中,我发现一个类中有几行重复逻辑(不到15行)。当我建议作者重构代码时,他辩称那样写的代码更容易理解。但是重新阅读代码后,我必须承认提取重复逻辑可能会影响可读性。 我知道DRY原则只是指导方针,而不是绝对规则。但一般情况下,你是否愿意在追求DRY原则的名义下损害可读性?

49得票2回答
如何在处理递归求和类型时减少代码重复

我目前正在为一种编程语言开发一个简单的解释器,而我有一个类似于以下的数据类型:data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr 我有许多函数可以执行简单的任务,比如:-- Substitu...

48得票2回答
如何使用多个构造函数来消除重复代码并保持可读性?(该问题涉及IT技术)

int a, b, c; Constructor() { a = 5; b = 10; c = 15; //do stuff } Constructor(int x, int y) { a = x; b = y; c = 15; ...

37得票8回答
基本类型导致的代码重复:如何避免疯狂?

在我的Java项目中,由于Java处理(not)原语的方式,我被代码重复困扰。必须手动将相同的更改复制到四个不同的位置(int,long,float,double),再次,第三次,再次 和 再次,我真的很接近崩溃。 这个问题以各种形式在StackOverflow上被提出: 管理Java中...

36得票3回答
有没有一种方法可以衡量重复代码?

我正在寻找一个语言无关的代码重复工具,可以用于在自定义语法的模板上运行一些代码重复性分析。虽然很容易找到针对特定语言(如Java、C、PHP等)的代码重复工具,但我想要一个可以适用于自定义语法的工具。 我并不关心语法高级解析,只需要基于行进行原始字符串比较即可。忽略空格的匹配会更好,但不是必需...

35得票15回答
如何说服同事代码重复是不好的?

我的一个同事在我们共同开发的项目中实现了一个新功能,他是通过拿取一个包含类似功能实现的文件,创建它的拷贝并将所有全局变量重新命名,稍微修改一下实现来完成的。于是我们就得到了两个几乎完全相同但命名不同的大文件。 我试着解释这样做会使我们的项目更难维护,但他不想改变任何东西,说这种编程方式更容易...