假设我有以下的`class X`,我想返回对一个内部成员的访问权限: class Z { // details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) {...
我一段时间前犯了一个错误,当我重构单元测试以使它们更加DRY时,我毁掉了几个单元测试--每个测试的意图不再清晰。似乎在测试的可读性和可维护性之间存在权衡。如果我在单元测试中保留重复的代码,它们会更易读,但是如果我改变SUT,我就必须追踪并更改每个重复代码的副本。 你认为这种权衡存在吗?如果是...
我们有一个相当庞大的代码库,有400K行的C++代码,并且代码复制是一个问题。是否有任何工具可以有效地检测重复的代码块? 理想情况下,开发人员可以在开发过程中使用此工具,而不仅仅是偶尔运行以查看问题所在。如果我们能够将这样的工具与CruiseControl集成,每次提交后都能给出报告,那就更...
自从15版本以来,IntelliJ警告我代码有重复。 在某些情况下,这可能是有意为之的,因此我想通过使用@SuppressWarnings注释来忽略/抑制此警告。但是,正确的值是什么? 编辑:我不是要像问题在Intellij中禁用重复代码检测是否可能?那样完全禁用这种检查。
在最近的代 码审查中,我发现一个类中有几行重复逻辑(不到15行)。当我建议作者重构代码时,他辩称那样写的代码更容易理解。但是重新阅读代码后,我必须承认提取重复逻辑可能会影响可读性。 我知道DRY原则只是指导方针,而不是绝对规则。但一般情况下,你是否愿意在追求DRY原则的名义下损害可读性?
我目前正在为一种编程语言开发一个简单的解释器,而我有一个类似于以下的数据类型:data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr 我有许多函数可以执行简单的任务,比如:-- Substitu...
int a, b, c; Constructor() { a = 5; b = 10; c = 15; //do stuff } Constructor(int x, int y) { a = x; b = y; c = 15; ...
在我的Java项目中,由于Java处理(not)原语的方式,我被代码重复困扰。必须手动将相同的更改复制到四个不同的位置(int,long,float,double),再次,第三次,再次 和 再次,我真的很接近崩溃。 这个问题以各种形式在StackOverflow上被提出: 管理Java中...
我正在寻找一个语言无关的代码重复工具,可以用于在自定义语法的模板上运行一些代码重复性分析。虽然很容易找到针对特定语言(如Java、C、PHP等)的代码重复工具,但我想要一个可以适用于自定义语法的工具。 我并不关心语法高级解析,只需要基于行进行原始字符串比较即可。忽略空格的匹配会更好,但不是必需...
我的一个同事在我们共同开发的项目中实现了一个新功能,他是通过拿取一个包含类似功能实现的文件,创建它的拷贝并将所有全局变量重新命名,稍微修改一下实现来完成的。于是我们就得到了两个几乎完全相同但命名不同的大文件。 我试着解释这样做会使我们的项目更难维护,但他不想改变任何东西,说这种编程方式更容易...