编写可维护软件的十大原则
编写可维护软件,可以提高软件开发效率,降低开发和维护成本。而要实现这一目标,软件开发人员应当遵守以下10大原则:
编写短小的代码单元
这里的代码单元,指的是方法或函数。
短小的代码单元(一个经验法则是一个代码单元规模不超过15行),可读性好,易于分析、测试和重用,因此可维护性好。
编写简单的代码单元
这里的“简单”,指的是拥有更少的决策点(一个经验法则是一个代码单元分支不超过4个)。简单的代码单元,同样易于分析和测试。
不写重复代码
编写代码应当避免复制粘贴已有的代码。因为一旦对代码重复使用,在修改时就需要对每行代码进行修改,如果稍有疏忽,遗漏了部分重复代码,就会给软件带来Bug。而且重复代码也是回归测试产生Bug的一个来源。重复的代码应尽量即将起提取到一个方法中来。
保持代码单元的接口简单
这里的代码单元接口实际上指的是代码单元的参数(一个经验法则是一个代码单元参数不超过4个)。含有更少参数的代码单元易于测试和重用。
分离模块之间的关注点
这里的“模块之间的关注点”指的是模块间的耦合程度,分离模块之间的关注点就是要使得模块要高内聚松耦合。松耦合的模块更易于修改,也利于构建更加模块化的系统。
架构组件松耦合
这里的“架构组件”强调的是软件的顶层(高层级)组件。一个组件是由一个或多个模块组成的。软件的顶层组件之间越是松偶合越易于修改,也利于构建更加模块化的系统。
保持架构组件之间的平衡
组件之间的平衡有三层意思:一是同一层级的组件数量不会太多也不会太少(一个经验法则是组件数量不超过9个);二是同一层级的组件规模相差无几;三是各组件是松耦合的。一个平衡度很好的架构可以使得修改更加容易。
保持小规模源代码
应尽可能使得最终软件的源代码规模小。软件源代码规模越大越难以维护,因为需要分析、修改、测试更多的代码,而且效率也比小规模的源代码低得多。
自动化开发部署和测试
自动化测试可以对修改的有效性得到及时的反馈,它的高效是手工测试无法比拟的。而且自动化测试可以有效地提高开发效率,降低开发过程中遗留的Bug数量。
编写简洁的代码
代码中存在的无用代码和注释越多,就会给维护人员阅读和理解代码带来越大的障碍,从而影响维护工作的效率。
这正是:
软件追求可维护,十个原则要遵守
别人经验要汲取,自己软件质量优
参考书目:代码不朽:编写可维护软件的十大要则,作者:(荷兰)约斯特·维瑟,译者:张若飞,出版社:电子工业出版社