问题标签 [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 投票
3 回答
3044 浏览

duplicates - 重复代码:如何使用工具查找和删除

我正在管理一组三个从事 php 项目的实习生。他们似乎不擅长重构,并且在多个地方使用重复的代码。我正在寻找一个工具,我可以用它来找到这个重复的代码,以便我可以展示它们。

这将使我的工作更轻松,项目更优雅,更不容易出错。有什么线索吗?

0 投票
2 回答
419 浏览

c# - 避免 JavaScript 和 C# 中的重复逻辑

我正在编写一个向导,让用户将字符串映射到对象的属性。这是通过使用用户选择并提供参数的一些预定义规则来完成的。这些规则集合保存到数据库中,稍后通过服务调用运行。

问题在于,在向导中,当用户选择规则并键入参数时,它会突出显示和更新一些示例文本。这是使用 JavaScript 完成的,因此显然复制了 C# 规则中包含的逻辑。

所以我正在寻找解决这个问题的方法。

规则非常简单,只包含要应用的参数列表和一个接受输入字符串并返回结果的方法。

0 投票
2 回答
243 浏览

java - 如何重构这些包装方法以消除重复代码?

以下两种方法用于使用 Google Gson 包装反序列化:

它们几乎相同,但我想不出一个聪明的方法来摆脱重复的代码。

有什么建议么?

0 投票
3 回答
1439 浏览

c# - 重构 c#:当要更新的属性在每种情况下都不同时,如何删除重复的代码

在对原型进行了一段时间的修改后,我最终得到了一些方法,这些方法可以更新对象上的布尔标志,然后更新接口并根据新值进行一些处理。这些几乎都是一样的——但是它们更新的值是不同的

例如 - 假设我们有一堆彩色框要更新 - 我可能有一些看起来像这样的方法:

现在,很明显——大部分内容都是重复的——当我开始改变任何事情时,这很痛苦。特别是如果我最终得到二十种不同的盒子颜色,而不仅仅是两种!

我在想必须有一种方法可以去除更改的代码并以更通用的方法收集相同的东西 - 但我很难弄清楚如何做到这一点。

我听说过关闭 - 但我对它们的了解还不够,不知道它们是否会在这里提供帮助。

我在想可能以下内容可能在正确的行上-但我不知道如何告诉泛型方法要对哪个属性进行操作- [要更新的项目变量]

关于如何处理这种事情的任何指针都会很有用:)

0 投票
1 回答
157 浏览

javascript - Applying DRY principles to JavaScript, help me optimize this code?

While on the search for ways to optimize the quality of my code, I eventually came across the concept of DRY (Don't repeat yourself). I try to follow this as best I can but sometimes I get into positions where I have to write two functions that are practically identical, save for 2 or 3 lines of code and I run out of time while trying to figure out the best way to organize it.

So here's my "question." I've included two functions below that I wrote a couple weeks ago that are basically identical except for 3 lines at the end, as well as one does an animation by addition and the other with subtraction. I would love to get some input from other developers as to how they would optimize the code below OR have examples of unrelated code where you solved a similar problem.

0 投票
2 回答
344 浏览

html - 制作目录样式的FAQ网页而不复制html

我正在尝试在网站上制作一个常见问题解答页面,所有问题都放在一起类似于目录(例如在维基百科上)。当您单击问题时,它会将您从页面跳转到问题(从上面重复)及其答案。

由于问题在页面上出现了两次,这样做很明显会导致问题在代码中出现两次,如果需要修改问题并且更新它的人只在一个地方更改代码,这可能会导致问题.

此外,在每个问题/答案对之前放置一个名称无意义的锚标签似乎是不合逻辑的;如果使用了数字,那么在添加或删除问题时这又会出现问题。

我想我基本上希望有一种方法可以将问题和答案存储在一个数组(可能使用 PHP 或 javascript?)或数组对中,然后为数组中的每个元素放置一个带有生成锚标记的列表项,问题及其答案。这是可行的,还是我只是在这里采取了错误的 Web 开发方法?

相关的问题:无论如何设计一个无序列表来用“Q:”替换项目符号?

0 投票
3 回答
194 浏览

php - 如何避免在 Javascript 和 PHP 中重复公式?

我目前正在用 HTML5/Javascript 和 PHP 编写一个 Web 应用程序。

公司的一些员工将需要使用它来输入他们的工作日程。该应用程序将实时(使用Javascript)计算一些复杂的法律信息,并在页面底部显示结果。完成后,用户单击“保存”按钮,所有内容都发送到数据库。

问题是我既需要用户实时查看输出,又需要管理人员从数据库中保存的内容中获取相同的输出。我还需要支持用户禁用 Javascript 的情况。换句话说,我需要在 Javascript 和 PHP 中做同样的计算。

为了使事情变得更复杂,公式非常复杂并且会经常更改(每个月左右),所以我想避免维护两个不同的版本。测试一个已经够难的了。

另外我想避免 AJAX 向服务器询问输出,因为:

  • 用户经常会根据实时计算的结果来制定自己的日程安排,所以即使是 1-2 秒的延迟也会让他很烦
  • 如果可能我必须支持 HTML5 的离线功能,这样用户可以在他的手机上加载应用程序,离线时填写它的时间表,然后在线上传

目前我找到的唯一解决方案是以与语言无关的方式编写公式,然后使用某种方式将其转换为 PHP 代码和 JavaScript 代码,但这并不简单。

0 投票
2 回答
85 浏览

java - Method 和 Constructor都继承自 Member,都具有 getExceptionTypes() 方法。在这种情况下如何避免代码重复?

我的代码库中有这两种方法,我想以某种方式合并它们以避免代码重复:

有没有办法排除代码重复(除了使用模板模式的子类化)?

0 投票
3 回答
136 浏览

c# - 从依赖于其他方法返回结果的方法中删除重复代码

在控制器类的 ASP.NET MVC 应用程序中,我有一个方法

此方法包含来自不同控制器的不同其他操作的通用逻辑我决定为控制器创建一个基类,它将保留此方法并从中派生其他控制器。但是问题在于,当我从派生类操作中调用此方法时,我需要验证是否不为空,然后返回结果,例如

在其他操作中,我需要验证结果是否再次为空

而且我想避免重复代码,有人可以帮助我举例或建议吗?我需要的是,如果没有通过方法 VerifySanction() 进行验证,则什么也不做,否则返回 Action 结果。

更新操作可能像这样

提前致谢

0 投票
0 回答
482 浏览

c# - 跨多个命名空间和部分类复制代码

我正在使用 LinqToXSD 根据客户的 XSD 生成文档模型(代码)。由于每次生成文档模型时这些 XSD 共享通用结构,因此某些对象会重复。为了防止编译问题,我将每个文档模型放在自己的命名空间中。这效果很好。

但现在我想对这些公共部分类的对象进行一些自定义验证。所以我IValidate用一个Validate()方法定义了一个接口。现在我在多个对象模型中生成了一些低级对象,但每个对象模型都在不同的命名空间中。

现在我想编写一个单独的部分类文件来在我的所有 foo 类中添加IValidate接口和方法。Validate()但是,这当然行不通,因为它们实际上是不同的对象。由于生成的代码和用于生成代码的 XSD 库,我有很多这些。

如果我可以隐藏内部结构(阅读上面的'......'),这将起作用。我在不同的命名空间中有很多 foo(我有 foo1 到 foo100,每个都有相同的问题)。我需要复制代码,我知道这是不行的,我不想这样做。但是,如果我这样做了,我至少不想维护这么多相同代码的副本。

我相当有信心这可以通过动态来完成,但我宁愿不必去那里。

谁能建议一些其他方法来编写这些验证方法而不必手动复制到每个 namespace.class 的部分类?