加入收藏 | 设为首页 |

火竞猜-程序员的技能负债怎样还?

海外新闻 时间: 浏览:203 次

技能负债就比如修正和扩展软件体系,每逢增加新功用时,需求支付的额定尽力就好像是债款利息相同。那么身为技能开发者,该怎么归还技能负债?

作者 | Martin Fowler

译者 | 弯月,责编 | 郭芮

以下为译文:

软件体系常常树立在内部质量有缺点的代码之上,因而比抱负情况下更难修正和扩展体系。技能负债是Ward Cunningham提出的一个比方,描述这个问题就像金融债款相同,增加新功用时,需求支付的额定尽力就好像债款利息。

假定我的代码库中有一个紊乱的模块结构。此刻,我需求增加一个新功用。假如这个模块结构明晰,那么我只需求4天时刻就能够增加好这个功用,可是现在这个模块的结构很紊乱,所以我需求6天时刻。多出来的这两天便是债款利息。

关于债款的这个比方最招引我的当地在于,它让我考虑怎么处理这个问题。假定我或许需求5天时刻来整理这个模块化的结构,改好不健全的功用,这就相当于支付本金。假如只要这个功用需求用到这个模块,那么就因小失大,由于我一共需求9天时刻,假如我持续忍受这个模块的话只需求6天。可是,假如有两个类似的功用都用到了这个模块,那么我肯定会首要改好这个模块来加快速度。

如此说来,听起来这是个简略的数字问题,但凡有电子表格的司理都应该能够做出很好的挑选。惋惜的是,咱们并不能很好地衡量咱们的生产力,因而这些本钱都无法客观地衡量。咱们能够预算完结一个功用需求多长时刻,咱们需求预当作新火竞猜-程序员的技能负债怎样还?功用的时刻(在改好模块后的情况下),以及改好这个模块的时刻。可是,咱们的预算的准确性十分低。

鉴于此,一般咱们的做法是:担负着负债持续做新功用,并逐渐支付本金。在做第一个功用的时分,我会花额定的几天时刻来修正一些不健全的功用。这能够将未来的利息下降到一天。尽管这之后咱们依然需求花费额定的时刻,可是这些代码顺便的负债会下降。这种逐渐改善的优点在于,假如咱们频频地改动某个有待修正的负债,那么就证明这些代码正是最需求火竞猜-程序员的技能负债怎样还?被整理的区域。

这种用支付利息替代支付本金的方法,能够协助咱们决议优先处理哪个负债。假定有一个十分可怕的代码库,修正这个代码库几乎便是一个噩梦,假如我没有必要动这个代码库,那就不是个问题。只要当我用到这请回答1988在线观看部分软件时,才需求支付利息(这是这个比方与金融上的负债不同的当地,由于金融的利息支付是由时刻决议的)。因而,咱们能够不用理睬那些安稳的负债。相比之下,活跃度十分高的区域需求十分及时地修正,咱们应该采纳零忍受的情绪,由于这部分债款的利息十分高。这一点十分重要,由于开发人员往往只知道一味地更改代码,却不重视内部质量的时分,这些负债将不可避免地堆集起来——代码改变越多,危险就越大。

有时,这种债款的比方也能够判别是否应该疏忽内部质量。关键在于咱们需求支付时刻和精力才干阻挠负债的堆集。假如有些新功用十分火急,那么或许咱们不得不持续担负债款,只要比及将来再来处理这笔负债。

可是,大多数时分咱们的这种剖析做得都不好。另一方面,技能负债的影响十分快,会敏捷拖慢新功用开发的速度。不断堆集负债的团队终究都会被自己的债款搞得乌烟瘴气,大幅推迟交给,所以还不如趁早尽力提火竞猜-程序员的技能负债怎样还?高内部的质量。这个比方往往会让人误解,由于这种发展趋势与金融借款并不完全相同。

人们经常会争辩是否应该将不同品种的质量问题视为债款。我觉得咱们应该考虑这些债款是有意形成的,仍是一时不小心形成的。

原文链接:https://martinfowler.com/bliki/TechnicalDebt.html

本文为 CSDN 翻译,转载请注明来历出处。

【END】

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间服务。