您的位置:首页 > 职场人生

程序员需要知道的75件事翻译—Act With Prudence 慎行

2012-05-24 18:57 316 查看
欢迎关注我的博客

翻译

------

"无论你做什么,请谨慎的做,并且考虑这件事情的连续后果"---Anon

在软件迭代的开始,无论进度开起来多么的宽裕,你都无法避免来自时间上的压力。如果你发现你必须在“正确的写程序”和“快速的写程序”之间选择,那么你往往会选择“快速的做”,并给自己一个“以后再Fix它”的借口。如果你对你自己,你的团队,你的客户做出这个承诺,那么兑现他。但是,经常能看到的事情是在下一个软件迭代周期中,我们需要解决新的问题,你也专注于解决新的问题。这种拖延工作的行为我们叫做技术债。而这样做并不好。更确切的说,Martin Fowler将这种情况叫做故意的技术债,和那些无意中的错误导致的技术债区分。

技术债就像是贷款:你会在短期取得很好的效果,但是终究你要连本带利的还掉你的欠债。在代码中的“捷径”让增加功能和重构代码都变得更为困难。这让Bug蔓生,让测试用例完成更困难。知道你修正这个技术债,你才能免去这一切烦恼。如果你正在着手修复一个源头处的错误,这也许会引出一系列“不那么正确”的设计。这会使代码更难重构和修正。事实上,经常是代码真的出错了,你才去修复它。那时候,这个开始是很小问题的“技术债”,已经变得很难去修复了。你的项目也不能承受修复这个债的时间和风险。

你有时候必须要欠下这种“技术债”,例如deadline将至或者实现一个很小的功能点。首先避免这种情况出现,但是如果出现了,那么也只能欠下这个“债”了。但是(一个大大的但是),你必须记录跟踪这个“技术债”,并尽快的偿还他。否则事情将迅速的变得不可控制。也就是,一旦你打算这样做,那么必须记录到一张任务卡或者一个issue中,这样才能保证你不会忘了这件事情。

如果你在下一个迭代周期中,打算偿还这个技术债,那么损失会最小化。如果你一直不偿还这个技术债,那么你同时需要记录由于这个“技术债”而产生的“利息”,并量化它。这样做会强调这个技术债的影响,并且可以量化“还债”的优先级。如何计算和跟踪“利息”和具体项目有关,但是你必须这么做。

及时的还清技术债。否则,这技术债便是轻率的行为。

想法

------

慎行是一个很重要的事情。但是让每个程序员时刻对自己要求严格,是一件很刻薄的事情。

一个人如果切实了解这件事的价值,那么一定会去做。

中国的教育,注定了中国的程序员很难有这方面的素质。其实,培养这种素质很简单。让大学的毕业设计,从大一开始做。四年写一个大型的系统。那么每个人都应该能感受到不应该欠下“技术债”了

文中提到的“技术债"的欠法很牛逼。以前自己没有想到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: