问题标签 [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.
oop - 逻辑相似但类不同(避免重复)
我有四个从 XSD 生成的类似类结构,每个都是不同版本的 API。
问题是,我有对所有这些不同的类结构进行操作的类,但是很多代码在所有结构中都是相同的。我不能为每个类都有接口,因为所有类都是从 XSD 生成的。然而我想从我的代码库中删除重复...
这里有什么好的 OO 解决方案?
谢谢。
refactoring - 如何说服同事重复代码是不好的?
我的一个同事在我们一起工作的项目中实现了一个新特性,他通过从同一个项目中获取一个包含类似特性实现的文件,创建它的副本重命名所有全局声明并稍微修改执行。所以我们最终得到了两个除了重命名之外几乎相同的大文件。
我试图解释这使我们的项目更难维护,但他不想改变任何东西,说这样对他来说更容易编程,如果“不是”就没有理由修复代码坏了”。
我怎样才能让他相信这样的代码重复是一件坏事?
它与这个问题有关,但我对针对技术人员(另一位程序员)的答案更感兴趣,例如参考像一本书这样的权威资料会很棒。我已经尝试过简单的论点,但没有成功。
c# - 如何重构重复的事件处理代码
我有以下类,它允许某些对象订阅更改事件。问题是我还有 B 类和 C 类,它们需要允许对象订阅相同类型的功能。我们当然不想复制和粘贴这种行为。
我们考虑过从一个公共基类继承,但是我们所有的类,包括 A、B 和 C 都已经从一个公共 BaseClass 继承。而且我们不想将此行为添加到 BaseClass 中,因为从 BaseClass 继承的其他类 E、F、G 不需要此行为。
有更好的解决方案吗?
c++ - C++ 符号修改和导出 => 允许代码重复?
在我们的项目中,我们有这样的东西:
我建议将其更改为类似的内容:
但这被拒绝了,我被告知:“这种方法存在一个问题 - C++ 符号修改和导出。在导出的符号(使用它们的 API)中使用模板时,模板太长了,无法导出模板。”
这个论点是否强大到允许大量代码重复?
c# - 如何处理具有不同参数的相同代码路径?
我遇到过这样一种情况,尝试不必修改底层源代码(在那个级别它不是真正的“我的”代码;否则,我很想修改它),我有两个几乎相同的代码路径,但是我正在使用的不同类型的数据。
忽略您可能很容易将一个转换为另一个,类似的示例将是“圆形”对象。
一方面,我有一个Point
对象和一个半径。另一方面,我有一个Circle
对象。这两个都可以描述同一个实际的圆圈,但我无法将一个转换为另一个。
然后,在我的代码中,我有:
当然,我的代码Run
比这个例子中的要多。
如何合并Run
到单个函数中以最大程度地减少代码重复?
common-lisp - Placing Boats in Battleship (Removing Code Duplication)
I'm (slowly) working out a 2D version of Battleship now that my 1D version is done. I wrote the following function to place a boat on the board given the length of the boat, the position of the boat, and the direction the boat is facing. However, the function is ugly. Very ugly. By which I mean, there is much in the way of code duplication. Could anyone point out some ways in which I could reduce the duplication in this code?
EDIT: For clarification, pos
is a number between 1 and 100, signifying a cell in a 10x10 2D array.
c# - 如何通过使用委托/lambdas 来避免这种重复的代码
我在下面有这段代码,它通过数据结构循环构建字典。
我将此代码复制了多次,唯一的区别是字典的键
所以在下面的代码中它恰好是:
这是字典的关键,但在其他情况下它只是:
要不就
这是一个硬编码“桶”方法之一的示例。
我的目标是拥有一个通用的“Bucket”方法,我可以在其中有一个回调或某种方式来传递用于计算密钥的函数。
这样做的最佳方法是什么?
c++ - 在 C++ 中,如何在不重复代码的情况下为类复制构造函数和赋值运算符提供相同的功能
有没有一种方法可以使复制构造函数和赋值运算符的主体包含相同的代码而实际上没有重复的代码(函数头除外)?
c++ - C ++每个派生类中的不同常量成员,如何移动函数以删除访问中的重复?
我派生的类在某些常量属性上有所不同。在所有派生类中,我都有一个返回属性的函数。有没有办法将 get_x 函数移到基类中以删除重复项?我查看了这个线程和很多谷歌搜索,但我找不到我想要的东西: C++:在派生类中用不同的值初始化基类常量静态变量?
我希望它看起来像这样,但这不起作用,因为 x 没有在 base.xml 中定义。我也尝试过 extern、static const attribute x 等。
谢谢。
asp.net - 复制整个网站的最佳方式是什么?
我已经为一个客户建立了一个复杂的网站,他希望这个网站被复制并重新换皮,所以它可以用于其他方式。
这样做的最佳方法是什么?我担心复制每个文件,因为这意味着任何错误都必须修复两次,任何改进都必须实施两次。