
目标,编写高质量的代码,本章节只介绍在易读性、易维护性和可靠性方面的最基本的代码设计方法~
如果编写的代码易读性不好,在维护阶段的多次阅读过程中,将会消耗维护人员大量的精力;研究实验表明,维护时间大部分都花费在了程序阅读和理解上,出于个体和团队两方面的度量,都应该将易读性作为首要质量标准~
最基本的要求:代码的布局能够清晰地体现程序的逻辑结构~




文档注释:
(1)注释类型:如果组织得当,代码注释本身就是一份非常好的代码文档
- //:语句注释
- /* */:标准注释
- /** */:文档注释
(2)文档注释的内容与格式:包的总结与概述、类和接口的描述、类方法的描述、字段的描述等
(3)javadoc:方便注释文档化代码的工具:
内部注释:
- 注释要有意义,不要简单重复代码的含义
- 重视对数据类型的注释
- 重视对复杂控制结构的注释
易读是易维护的必要前提,只有理解了程序代码,才能正确地修改程序代码~
要让程序代码可修改,就要控制代码复杂度,要求每个函数或者方法的代码应该是内聚的,恰好完成一个功能与目标~
如果内聚的代码比较复杂,典型表现是完成一个功能需要多个步骤、代码比较长,那么就需要将其进一步分解为多个高内聚、低耦合的小型任务~
究其根本,小型任务有更好可维护性的原因是,通过将不同的代码片段抽象为不同的任务接口,可以解决复杂代码的集中不理想但无法回避的内聚——时间内聚、过程内聚and通信内聚~
代码中的业务规则是最容易发生修改的地方之一,表现为对代码中复杂决策的修改,所以,在编程中要注意对复杂决策的处理~
类之间模糊的依赖关系会影响到代码的理解与修改,非常容易导致修改时产生未预期的连锁反应,对于模糊的依赖关系,需要进行明确的注释~
提高代码可靠性的方法往往会降低底阿妈的易读性和性能,也可能牺牲易维护性,所以只有针对那些可靠性比较重要的代码才会采用提高可靠性的方案~
一个函数或者方法在前置条件满足的情况下开始执行,完成后又能够满足后置条件,那么这个函数或者方法就是正确的、可靠的~
(复杂系统中不推荐使用断言方式,异常方式灵活的多)
在一个方法与其他方法、操作系统、硬件等外界环境交互时,不能确保外界都是正确的,所以要在外界发生错误时,保证方法内部不受损害~
需求开发可以使用分析模型建模复杂业务与需求,软件设计可以使用模型分析与验证复杂设计方案,编程也可以使用一些模型方法帮助设计复杂代码~
一种决策逻辑的表示方法,用于描述复杂决策逻辑~

结合了编程语言和自然语言的特点,结合使用程序语言的逻辑结构和自然语言的表达能力描述程序逻辑~
优点在于,不是编程语言因此不会存在语法问题,不需要担心意思表达是否符合语言规范,可以非常容易地反复修改——好处在于程序员可以从编程语言的细节脱离出来,专项考虑程序逻辑,反复推敲代码质量~
很在在结构化编程中使用的模型手段,现在也经常被用来表现和分析程序结构~

主要使用两种线索:方法的规格+方法代码的逻辑结构~
创建桩程序,以将被测试方法独立出来
除了测试类的每一个方法之外,还要测试类不同方法之间相互影响的情况~
衡量圈复杂度的基本思路是计算程序中独立路径的最大数量:
建立程序的流程图G,假设图的结点数为N,边数为E,则复杂度V(G)=E+N-2