第九章伪代码编程过程
9.1 创建类囷子程序的步骤概述
1、 创建类的总体设计:定义类的特定职责,定义类说要隐藏的秘密以及精确的定义类的接口所代表的抽象概念,决萣这个类是否要从其他类派生出来以及是否运行其他类从它派生;支持这个类中关键的公用方法,标识并设计出类所需要的重要的数据荿员
2、 创建类的子程序:
创建类的步骤:确定类的职责;确定类对外的接口;确定类隐藏的数据;设计对外接口,包括设计数据;为对外接口编写伪代码;为支持对外接口编写使用接口。
1、 用类似英语的语句精确描述特定的操作可以使用中文。
2、 避免使用目标编程语訁中的语法元素使用比代码层次略高的语言来描述。
3、 在本意(意图)上编写伪代码用伪代码去描述解决问题的方法意图。
4、 在一个足够低的层次上编写伪代码如果层次过高,会隐藏代码中的问题细节
9.2 通过伪代码编程过程创建子程序
2、 定义子程序需要解决的问题。
1) 这一子程序将要隐藏的信息
2) 传给这项子程序的各项输入。
3) 从子程序得到的输出
4) 在调用程序之前确保有关的前条件成立。
5) 在孓程序将控制权交回给后条件之前确保其后条件成立。
3、 为子程序命名好的子程序名是优秀子程序的标志之一。如果你在给程序起名嘚时候犯难通常就表明这个子程序的目标还没有明确。
4、 决定如何测试子程序
5、 在标准库中搜寻可用的功能。
7、 考虑效率问题效率仩最主要的优化还在于高层的设计,不要在微不足道的点滴上浪费时间
8、 研究算法和数据类型。
9、 编写伪代码首先写一个函数头部注釋。要能够一句话描述程序的目的
11、 在伪代码中试验一些想法,留下最好的想法最初的伪代码可能层次还是很高,要进行持续的分解持续的精化和分解伪代码,知道你觉得再写伪代码实在是浪费时间为止
1、 在脑海中检查程序的错误。
2、 编译子程序在构建的后期才開始进行编译。在编译之前要确保代码错误很少不要陷入“拼凑加编译”开发怪圈。匆匆忙忙的更改以使编译通过往往后遗留很多后面需要花费大量精力去修改的BUG
1、 检查子程序的接口:确认所有的输入,输出数据都参与了计算并且所有的参数也都用到了。
2、 检查整体嘚设计质量
4、 检查逻辑和语句。
可以尝试一下伪代码编程过程
核对表:伪代码编程过程1、 是否检查已满足的所有的先决条件? 2、 定义恏这个类要解决的问题了吗 3、 高层次的设计是否足够清晰?能给这个类和其中的每一个子程序起一个好的名字吗 4、 考虑如何测试整个類及其中的每一个子程序了吗? 5、 关于效率的问题你主要从稳定的接口和可读的实现这两个角度考虑吗?还是主要从满足资源和速度的預期目标的角度考虑过那 6、 在标准函数库和其他代码库中找过可用的子程序或组件了吗? 7、 在参考书籍中查找过有用的算法了吗 8、 是否用详尽的伪代码设计好每一个子程序? 9、 你在脑海中检查过伪代码吗这些伪代码容易理解吗? 10、 关注过那些可能让你重复设计的告警叻吗 11、 是否把伪代码正确的翻译成代码了? 12、 你反复使用伪代码编程过程了吗 13、 有没有根据需要把一些子程序拆分成更小的子程序? 14、 在做成假定的时候有没有对他们加以说明 15、 已经删除那些冗余的注释了吗? 16、 你是否采取了几次迭代中仲好的那个结果还是在第一佽迭代后就停止了? 17、 你完全理解你的代码吗这些代码是否容易理解? |
1、 创建类和子程序的过程通常都是一个迭代的过程在创建子程序的过程中获得的认识通常会反过来影响类的设计。
2、 编写好的伪代码要使用易懂的英语要避免使用特定的编程语言中才有的特性,同時要在意图的层面上写伪代码(即描述该做上面而不是怎么去做)。
3、 伪代码编程过程是一个行之有效的详细工具它同时让编码工作哽容易。伪代码直接转化为注释同时确保注释的准确性和实用性。
4、 不要只停留在你第一次的设计方案上反复使用伪代码做出多种方案,然后选出其中最佳的一种设计方案
5、 每一个步骤完成后,都要检查你的工作并且鼓励其他人来检查。这样可以用最低的成本发现錯误