`
kuwoleft
  • 浏览: 1071938 次
文章分类
社区版块
存档分类
最新评论

《代码大全学习笔记》第九章,伪代码编程过程

 
阅读更多

第九章,伪代码编程过程

前言

9.1 创建类和子程序的步骤概述

创建一个类的步骤

1、 创建类的总体设计:定义类的特定职责,定义类说要隐藏的秘密,以及精确的定义类的接口所代表的抽象概念,决定这个类是否要从其他类派生出来,以及是否运行其他类从它派生;支持这个类中关键的公用方法,标识并设计出类所需要的重要的数据成员。

2、 创建类的子程序:

3、 复查并测试。

创建子程序的步骤:

创建类的步骤:确定类的职责;确定类对外的接口;确定类隐藏的数据;设计对外接口,包括设计数据;为对外接口编写伪代码;为支持对外接口,编写使用接口。

9.2 伪代码

伪代码编写原则:

1、 用类似英语的语句精确描述特定的操作。可以使用中文。

2、 避免使用目标编程语言中的语法元素。使用比代码层次略高的语言来描述。

3、 在本意(意图)上编写伪代码。用伪代码去描述解决问题的方法意图。

4、 在一个足够低的层次上编写伪代码。如果层次过高,会隐藏代码中的问题细节。

9.2 通过伪代码编程过程创建子程序

设计子程序:

1、 检查先决条件。

2、 定义子程序需要解决的问题。

1) 这一子程序将要隐藏的信息。

2) 传给这项子程序的各项输入。

3) 从子程序得到的输出。

4) 在调用程序之前确保有关的前条件成立。

5) 在子程序将控制权交回给后条件之前,确保其后条件成立。

3、 为子程序命名。好的子程序名是优秀子程序的标志之一。如果你在给程序起名的时候犯难,通常就表明这个子程序的目标还没有明确。

4、 决定如何测试子程序。

5、 在标准库中搜寻可用的功能。

6、 考虑错误处理。

7、 考虑效率问题。效率上最主要的优化还在于高层的设计,不要在微不足道的点滴上浪费时间。

8、 研究算法和数据类型。

9、 编写伪代码。首先写一个函数头部注释。要能够一句话描述程序的目的。

10、 考虑数据。

11、 在伪代码中试验一些想法,留下最好的想法。最初的伪代码可能层次还是很高,要进行持续的分解。持续的精化和分解伪代码,知道你觉得再写伪代码实在是浪费时间为止。

编写子程序的代码:

检查代码:

1、 在脑海中检查程序的错误。

2、 编译子程序。在构建的后期才开始进行编译。在编译之前要确保代码错误很少。不要陷入“拼凑加编译”开发怪圈。匆匆忙忙的更改以使编译通过往往后遗留很多后面需要花费大量精力去修改的BUG

3、 测试代码

4、 修改错误。

收尾工作:

1、 检查子程序的接口:确认所有的输入,输出数据都参与了计算,并且所有的参数也都用到了。

2、 检查整体的设计质量。

3、 检查变量。

4、 检查逻辑和语句。

5、 检查布局。

6、 检查文档。

7、 出去冗余注释。

可以尝试一下伪代码编程过程。

CHECKLIST: The Pseudocode Programming Process

核对表:伪代码编程过程

1、 是否检查已满足的所有的先决条件?

2、 定义好这个类要解决的问题了吗?

3、 高层次的设计是否足够清晰?能给这个类和其中的每一个子程序起一个好的名字吗?

4、 考虑如何测试整个类及其中的每一个子程序了吗?

5、 关于效率的问题,你主要从稳定的接口和可读的实现这两个角度考虑吗?还是主要从满足资源和速度的预期目标的角度考虑过那?

6、 在标准函数库和其他代码库中找过可用的子程序或组件了吗?

7、 在参考书籍中查找过有用的算法了吗?

8、 是否用详尽的伪代码设计好每一个子程序?

9、 你在脑海中检查过伪代码吗?这些伪代码容易理解吗?

10、 关注过那些可能让你重复设计的告警了吗?

11、 是否把伪代码正确的翻译成代码了?

12、 你反复使用伪代码编程过程了吗?

13、 有没有根据需要把一些子程序拆分成更小的子程序?

14、 在做成假定的时候有没有对他们加以说明?

15、 已经删除那些冗余的注释了吗?

16、 你是否采取了几次迭代中仲好的那个结果?还是在第一次迭代后就停止了?

17、 你完全理解你的代码吗?这些代码是否容易理解?

本章要点

1、 创建类和子程序的过程通常都是一个迭代的过程。在创建子程序的过程中获得的认识通常会反过来影响类的设计。

2、 编写好的伪代码要使用易懂的英语,要避免使用特定的编程语言中才有的特性,同时要在意图的层面上写伪代码(即描述该做上面,而不是怎么去做)。

3、 伪代码编程过程是一个行之有效的详细工具。它同时让编码工作更容易。伪代码直接转化为注释,同时确保注释的准确性和实用性。

4、 不要只停留在你第一次的设计方案上,反复使用伪代码做出多种方案,然后选出其中最佳的一种设计方案。

5、 每一个步骤完成后,都要检查你的工作,并且鼓励其他人来检查。这样可以用最低的成本发现错误。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics