Yig*_* Wu 129 copy-paste dry
有时,我的老板会向我们抱怨:
为什么我们需要这么长的时间来实现一个功能?
实际上,该功能之前已经在另一个应用程序中实现,您只需要从那里复制和粘贴代码.成本应该很低.
这真的是一个难题,因为在我看来,复制和粘贴代码并不是一件简单的事情.
你有什么理由向你的非技术老板解释这个吗?
Ode*_*ded 169
如果您在复制粘贴代码中发现错误,则需要在每个地方修复它,并希望您能够记住它们(这也适用于更改的要求).
如果将逻辑保存在一个位置,则在需要时更容易更改(因此,如果您确定应用程序需要更新,则只能在一个位置进行更改).
让你的老板阅读干燥原则(不要重复自己).
您所描述的内容听起来像是图书馆的完美用途,您可以在这里共享代码并将其保存在一个地方.
如果我打算稍后重构代码,我只会复制粘贴代码- 确保我稍后提取公共代码,以便尽可能多地重用逻辑.不久之后,我的意思是分钟和小时后,而不是几天和几周.
Kil*_*oth 12
显而易见的原因是你为未来承担了"债务":你需要在代码中做出的任何改变(不只是错误修正,任何改变)现在都要贵两倍,因为你必须更新两个地方 - 而且风险更大,因为你最终会忘记其中一个.换句话说,现在让它更快地工作将使你的工作在未来更慢,这可能是良好的商业意识,但通常不是.
但更重要的原因是"这与此相同"的假设往往不是微妙的错误.每当您的代码依赖于未说出的假设是正确的时,将其复制到另一个地方会导致错误,除非这些假设也适用于新的地方.因此,粘贴的代码从一开始就经常是错误的,而不是在下一次更改之后.
Ziv*_*Ziv 11
设计方面,复制粘贴代码肯定是一场灾难,未来可能会导致许多问题.但是你问为什么你花了很多工作,现在,答案是:因为它从来就不仅仅是复制和粘贴.
如果原始代码是为了重用而编写的,作为一个相当独立的库,考虑到灵活性和客户端使用 - 那么很好,但这不是复制粘贴,而是使用代码库.真正的代码复制粘贴通常更像是这样:
总之,不能直接使用的现有代码最多可以作为编写类似代码的良好参考.它当然不能被提升整体,并期望在一个完全不同的系统中工作.一般来说,一个安全的假设是,任何已编写和完成的代码都应该尽可能少地混淆 - 即使它是副本而不是原始本身.
如果您希望将项目建立在复制粘贴的基础上,那么您必须以一种能够轻松重用的方式开始编写代码,而无需复制原始代码并搞乱它.这是值得做的,如果那是你老板的期望,那么你们都需要确保这就是你设计和工作的方式.
听起来像你的非技术老板最糟糕的误解是,你的工作主要是打字.他们认为你可以通过消除打字来节省大量时间.
我认为你能给这个人的最好的教育就是指出你所做的所有不打字的工作.即使大部分工作通常都是无形的,在你的头脑中,在打字的同时.
当然,消除打字会节省一些时间.但是,随着时间的推移,更大,不打字的部分工作变得越来越大,并且随时节省开支.
| 归档时间: |
|
| 查看次数: |
16477 次 |
| 最近记录: |