活动预告:1月~3,GIAC全球互联网架构大会将于上海举行,本周新增阿里,百度、今日头条等多名讲师出席,参看文末了解更多详情。
重构是指在不改变外部行为的前提下对代码的内部结构进行重组或重新包装。
想象一下,如果你是若干年前的我,正在对经理说你要让整个团队花上两周(一个完整的迭代周期)来重构代码。经理问:“好的。你会给我什么样的新功能呢?”
我说:“等等。我是说重构。重构修改内部结构而不改变外部行为。不会有任何新功能。”
他看着我问道:“那你为什么要重构?”
我应该如何回答?
软件开发者时常遇到这样的情况。有时候不知如何作答,是因为我们和管理层存在沟通障碍。我们使用的是开发者的语言。
我不能告诉经理重构代码是为了好玩,是因为它让我感觉良好,或者因为我想要学习Clojur或者其他新技术……这些对管理者来说都是不可接受的答案。我必须强调重构对于公司的重要意义,而且它确实意义重大。
开发者知道这些,但需要用恰当的词汇也就是商务用语来表达,其实就是收益和风险。
我们如何在降低风险的同时提高收益?
软件本身的特点决定了其高风险和多变性。重构能降低以下四个方面的成本:
日后对代码的理解
添加单元测试
容纳新功能
日后的重构
很显然,如果需要添加新功能或修复bug,就应该重构代码,这很容易理解。如果你以后不再碰代码,也许就不需要重构了。
重构是学习新系统运作机理的有效方式。通过对见名知意的方法进行封装或重新命名来学习代码。通过重构,我们可以补充之前缺失的实体,改善之前编写的糟糕代码。
我们都希望看到进度并如期交付,所以有时会做出妥协。重构代码能清理之前造成的障碍,为的是最终能够有所成果。
1 投资还是借贷我在年4月的博客中首次讲述了以下故事。1
1Brnstin,DavidScott.ToBAgil(blog).“IsYourLgacyCodRotting?”北京中医能治愈白癜风吗昆明白癜风正规医院
转载请注明:http://www.bociwangnai.com/tzysnr/987.html