在最近的代码审查中,我发现了一个类(less于15行)的几行重复的逻辑。 当我build议作者重构代码时,他认为代码更易于理解。 再次阅读代码后,我必须同意提取重复的逻辑会伤害可读性一点。 我知道DRY是指导方针,而不是一个绝对的规则。 但总的来说,你是否愿意以DRY的名义伤害可读性?
我们有一个相当大的代码库,C ++的400K LOC,代码重复是一个问题。 有什么工具可以有效地检测重复的代码块吗? 理想情况下,开发人员可以在开发过程中使用这些function,而不是偶尔运行以查看问题所在。 如果我们能够在CruiseControl中整合这样一个工具,并在每次登记后给出一个报告,那也不错。 我前段时间看了一下Duploc ,它显示了一个很好的graphics,但是需要一个小型的环境来使用它,这使得它自动运行起来相当困难。 免费工具会很好,但如果有一些好的商业工具,我也会感兴趣。
前段时间,我经历了几次unit testing,并重构了它们,使它们变得更加干燥 – 每个testing的意图都不再清晰。 在testing的可读性和可维护性之间似乎有一个折衷。 如果我在unit testing中留下重复的代码,它们更具可读性,但是如果我更改了SUT ,我将不得不追踪并更改每个副本的重复代码。 你是否同意这种权衡存在? 如果是这样,你喜欢你的testing是可读或可维护的吗?