如何驯服烂代码?

什么是烂代码?

简单地说,烂代码就是让人难以理解和/或难以维护的代码。代码难以理解一般表现为:命名不清、多层嵌套和滥用模式。代码难以维护一般表现为:代码冗余、难以扩展和不如重写。

烂代码一般具有以下特征:

1. 烂代码都是能够运行的

不管代码有多烂,它至少应该是可以运行的,不能运行的代码就不能被称为代码,那只是一堆字符串。

2. 烂代码都是有维护需求的

如果一段代码可以稳定无故障运行,那它即使再烂也不会被人发现。但是一旦它出现故障,需要维护了,它的烂才会被程序员知晓。

3. 烂代码对于其编写者、测试者和维护者来说都是反馈迟缓的

基于以上认识,这里所说的要驯服的烂代码就是指那些能够运行的、而且需要修改其中的bug或在其中增加新功能的、但对于代码的编写者、测试者和维护者来说反馈迟缓的难以理解、难以维护的代码。

要驯服烂代码,可以采取以下3个步骤:

1. 收集意图听其言

所谓“听其言”,就是指先理解代码要实现的意图。程序员可以收集并审查所有当前和今后要做的诸如用户意图、bug修复和代码重构这样的任务,形成一个用意图来表达的TODO列表。然后从条件具备的TODO任务开始,根据用户意图做出合理的分析和设计,根据设计意图编写用户意图测试或意图代码。对于已经完成的TODO,则从列表中删除。

2. 运行测试观其行

首先以上修复一步所编写的意图代码的编译错误为指引,遵循敏捷的“够用就好”原则,编写恰好够用的生产代码,直至测试代码和生产代码都通过编译。然后再运行测试,并以测试所发现的缺陷为指引,同样编写尽量少的生产代码,直至测试运行通过。

3. 代码重构守其道

在软件故障解决后,还要仔细阅读代码,检查代码是否有坏味道。如果有,就要在经常运行测试的情况下小步重构生产代码。如果重构后的代码出现新的缺陷,刚将其补充到“听其言”步骤中的TODO列表中,进入下一个迭代。

这正是:

坏的代码要驯服,先要理解好意图

通过测试来修复,通过重构上新路

参考书目:驯服烂代码:在编程操练中悟道,作者:伍斌,出版社:机械工业出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

如何驯服烂代码?》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/624.html