Coding style 风格模式vs双重代码什么是好的?

Coding style 风格模式vs双重代码什么是好的?,coding-style,double,Coding Style,Double,我有很多类似的代码片段。例如,使用jdom解析配置文件,将配置文件转换为正则表达式模式。这些都是在10行中完成的。写一些抽象的元怪物来完成所有这些将是非常复杂的 现在我总是在这里为双重代码而哭泣。这在我的用例中真的是件坏事吗?类似的代码使其易于理解和维护。功能之间没有很大的相互关系 我做的对吗?过度工程是一种反模式。如果你不需要抽象,就不要使用它。 当您的项目规模较大或预计会增长时,抽象和模式是最有用的。如果这不是你的情况,那就保持简单和愚蠢 这也是品味的问题。就我个人而言,即使有时不鼓励这样做

我有很多类似的代码片段。例如,使用jdom解析配置文件,将配置文件转换为正则表达式模式。这些都是在10行中完成的。写一些抽象的元怪物来完成所有这些将是非常复杂的

现在我总是在这里为双重代码而哭泣。这在我的用例中真的是件坏事吗?类似的代码使其易于理解和维护。功能之间没有很大的相互关系


我做的对吗?

过度工程是一种反模式。如果你不需要抽象,就不要使用它。 当您的项目规模较大或预计会增长时,抽象和模式是最有用的。如果这不是你的情况,那就保持简单和愚蠢


这也是品味的问题。就我个人而言,即使有时不鼓励这样做,如果我觉得模式和抽象在将来可能有用,我也更喜欢在简单的情况下使用它们,因为我讨厌将同一行代码重写两次。此外,设计模式还可以帮助您避免错误,因为它们将顺序放入代码和类关系中。

这实际上取决于这10行的外观。有些情况似乎不需要适当的抽象,可以通过一个简单的循环来解决。

不,如果你有三段以上的代码,那么拥有非常相似的代码就很难维护。当您发现一个bug(或规格更改)影响所有或多个代码片段时,您必须尝试找出差异。当它们完全相同时,可能更难修复

您至少可以尝试提出一些共同点,并创建一个名为helper函数的小型库。去掉棘手的部分比保存多少行代码更重要。

它有很多getChildren(“总是改变名称”),新的SomeSpecialObject(child)。所有非常相似的循环。但是规格总是不同的。