![]() |
1
26
当他在代码中发现一个错误时,问他会怎么做。他现在需要在多少地方修好? 你也可以告诉他答案 this question (为什么复制和粘贴代码很危险?). |
![]() |
2
11
当他想要咖啡时,让他从咖啡壶里一口喝一口,而不是一整杯。如果他加了奶油和糖,那就特别有效了,因为这些奶油和糖必须以极少量的分量涂抹。 这应该说明重复性任务是多么的麻烦和累人(比如纠正20段代码而不是一段)。 然后,给他发一个链接到这个帖子,这样他就可以看到其他所有支持你的人。 |
![]() |
3
10
这里有两个选项:
虽然第一个选择显然要好得多,但有时你没有选择。如果你最终需要在早上3点维护他的代码,因为一些重要的客户开始在地球的另一边大喊大叫,那么这绝对是你的问题,你的老板应该处理它。 最后,如果你的老板认为你错了,你可能是在错误的地方。 |
![]() |
4
8
给他一份 重构 . |
![]() |
5
5
把你的代码版本改进的如此之多,以至于他对嫉妒感到沮丧,然后说-如果你刚刚链接到我的代码… |
![]() |
6
3
你的同事正在通过牺牲更长的时间来优化他的短期效果 组织的期限效力(例如,他的其他同事 就像他自己一样)。第一个文件中需要的任何更改 可能是第二个要求,但没人会记得…和 这将导致2个查找和修复周期,而不是一个。 您可以在代码上运行一个克隆检测器,并将结果简单地展示给他的经理。 见 Wikipedia on duplicate code 以获取列表。 您可以使用我们的 CloneDR 探测器。它是设计的 要查找具有一致重命名的检测大代码块,它可以 准确显示发生了什么。 |
![]() |
7
3
因为当你发现一个bug时,你需要在两个地方改变它。因为当您想要添加一个新特性时,您需要在两个地方添加它。 |
![]() |
8
2
以技术理由向你的老板申诉。如果老板同意你同事的方法/和/或不让他解决问题,那么如果对理性的吸引力不起作用,你就没什么能做的了。 |
![]() |
9
2
不是让你的朋友马上解决这个问题。这是为了培养你的团队。 让他意识到他对团队和项目不公平。如果他还是不同意,给他一杯咖啡,让他坐下来小口喝,你可以拿起他的键盘,在他面前修改代码。 他可能会感到羞耻,下次也不会这么做(大胜)。我已经用了4次了,而且一直有效! 祝你好运。 |
![]() |
10
2
有很多理由不重复代码,但只要问…您的团队想要维护100K行代码(代码重复)还是50K行代码?在这一点上,代码复制似乎是最小的,这就是为什么你的同事没有看到dry概念的重要性,但是想象一下,如果s/he在接下来的5年中复制了越来越多的代码。谁来维护这个代码?你的团队?如果有一天他/她辞职了怎么办?你的团队想维持这种废话吗?:)如果没有,那么您已经提出了一个非常有说服力的案例,不重复代码,更不用说“更多的重复”=“将来更容易出现更多的错误”。 |
![]() |
11
1
告诉他,你永远不知道一个应用程序在企业中的地位……一个简单的测试应用程序有时会被反复修改,最终会被大量使用…我经常在小公司看到这种情况。然后,你可以简单地现在就做,简短而甜蜜,尽管它可以是…… |
![]() |
12
1
他可能认为它没有坏,也不会坏。同样,完美是好的敌人。我认为他并没有忘记复制/粘贴的危险,他只是对潜在错误的评估与你不同。 也许你可以为他打破它,以显示它是多么的容易。如果你不能,也许他是对的。 |
![]() |
13
1
如果他比你高明(或主管),请多问些解释-有可能了解更多的上下文…可能不值得重构代码(可能是一个小项目)。 如果他和你一样,你可以向你的上级汇报,提出这个解决方案(更好)。 如果你比他强,就“请”他按你的方式去做… |
![]() |
14
0
首先,承认他是对的:复制粘贴确实更快 现在 . 然后,假设问题在于长期的成本,并且成本会增加,因为随着重复,系统的顺序不如它可能的那么有序。他引入了混乱,杂乱,而且你的混乱越多,就越难使用系统。现在做些努力来更好地组织它,从长远来看(通常)会有回报。就像把你的桌子或房间整理好一样。 这是伊瓦尔·雅各布森关于 software entropy |