第九章 伪代码编程过程
创建类的步骤:创建总体设计;设计子程序;复查并测试。
创建子程序的步骤:设计子程序;检查设计;编写代码;复查并测试。
伪代码:用近似于英文的语句精确描述子程序中的特定操作,可以忽略语法细节,专注于抽象层次、可以忽略下一层次的实现细节。
优点:
有利于审查、修改子程序设计。
支持迭代精华的思想。
使注释量变小,可以以伪代码作为注释。
设计子程序的过程:
检查前条件。
定义需要解决的问题。要足够细致,包括:需要隐藏的信息;输入输出;确保前条件成立;确保后条件成立。
命名,原则如前述。
决定如何测试。
查看标准库中是否有已有工具。
考虑错误处理。
少数情况下需要考虑效率。
选择数据结构与算法。
编写伪代码。
复查伪代码。
在伪代码中尝试几种设计,留下最好的想法。
设计子程序、编写良好的伪代码之后,编写代码会变得容易:声明函数,有些语言中可能需要提前声明变量(c),将每行伪代码转化为注释,并对应地填充代码即可。
假如代码过多,可以将某一部分代码量过大的伪代码分离为单独的子程序,或递归地编写伪代码,用伪代码填充伪代码,直到可以简单地将伪代码展开为代码。
检查代码
自己先行检查或同行检查。
编译:将编译器警告级别提高,使用lint一类检查工具,并检查每一个error和warning。
逐行调试。
消除错误。
收尾:检查接口;检查设计的内聚性、防御性;检查变量,如名字是否合理、是否未被使用等;检查语句逻辑;检查布局;检查文档;去除冗余注释。
伪代码替代方案:
测试先行的编程方式。
重构。
契约式设计,见《程序员修炼之道》中有详细阐述。