《代码大全》 阅读笔记 第九章 伪代码编程过程

从微观的角度关注编程过程,也就是关注创建单独的类及其子程序的过程的具体步骤。

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

创建一个类的步骤:

1)创建类的总体设计

2)创建类中的子程序

3)复审并测试整个类

创建子程序的步骤:

一般子程序的实现是比较简单的、直截了当的,

1)设计子程序

2)检查设计

3)编写子程序的代码

4)复审并测试代码

 

9.2伪代码

通过描述算法、子程序、类或完整程序的工作逻辑的、非正式的、类似于英语的记法。

一些规范性的条例:

1)用类似英语的语句来精确描述特定的操作:关键词,精确

2)避免使用目标编程语言中的语法元素:关键词:避免目标编程语言的元素

3)在意图的层面上编写伪代码:通过意图来编写伪代码

4)在足够低的层次上编写代码:几乎通过编程语言的语句直接的翻译伪代码

伪代码的好处:

1)伪代码使得评审更容易

2)伪代码支持反复迭代精化的思想

3)伪代码使代码编写变得更容易

4)伪代码能够减少注释

5)伪代码比其他形式的设计文档更容易维护

 

9.3通过伪代码编程过程之创建子程序

1) 设计子程序

1. 检查先决条件

在动手做关于子程序的任何工作之前,应该先检查子程序要做的工作是不是已经定义好了,是不是与整体设计相匹配。另外要结合项目需求判断此子程序是不是真正的必须的,至少间接需要的。

2. 定义子程序要解决的问题

详细描述足够详细,以便子程序的创建。详细描述应该包含一下信息:

这一子程序将要隐藏的信息:封装一些信息

传给这个子程序的各项输入:in

从该子程序得到的输出:out

在调用程序之前确保有关前提条件成立:if

在子程序将控制权交给调用方程序之前,确保其后条件的成立

3. 为子程序命名

好的子程序名是优秀子程序的一个重要标记之一。好的程序名称应该是一个清晰无歧义的名字。如果当你为程序取名的时候,感到犯难,那么说明你对程序需要做的工作还是比较模糊的。

4. 决定如何测试子程序

阶段性的测试子程序,可以及时的发现问题,减少最后修改错误付出惨重的代价。

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

提高开发效率的一个重要途径是重用好的代码。人们可能对你需要的那个算法进行了很多的完善和总结,所以重用代码,不管是在效率还是代码的优良程度上都比较看好。

6. 考虑错误处理

考虑所有可能出错的环节。对于错误的处理尽量保持一样的策略。

7. 考虑效率问题

根据效率在项目和系统中的需求,对效率的要求,来选择两种情况:一,是否有良好的抽象,代码是否易读,封装是否良好等。二,考虑程序消耗的磁盘空间,内存,资源等。

8. 研究算法和数据类型

好的算法可以有事半功倍的能力。很多时候我们自己通过复杂繁琐的代码,可能只需要某个算法的几句话就搞定了。算法和数据结构是前辈们经过多年经验总结出来的。

9. 编写伪代码

精确的英语表达出程序将要完成的事和具体如何完成。

10. 考虑数据

比如数据的类型,数据的取值范围

11. 检查伪代码

阅读伪代码,从概念上去了解程序将要具体做什么。如果读完代码之后,却不知所云,那么说明这是失败的伪代码

12. 在伪代码中试验一些想法,留下最好的想法(迭代)

在编写代码之前,尽量使用伪代码验证一些想法,试图寻找出更好的想法,或者设计方案。

 

2) 编写子程序的代码

子程序设计完成之后,就是子程序的构建工作了。

步骤如下:

a) 写出子程序的声明:方法名

b) 把伪代码转变为高层次的注释:将伪代码转化成注释,增加{}

c) 在每条注释下面填充代码:填写代码

d) 检查代码是否需要进一步分解:检查代码,判断是否需要创建新的子程序,来满足该程序的创建。

3) 检查代码

在脑海里面检查程序中的错误

在脑子里面,检查错误。子程序通常是短小精悍的。根据所有可能的执行路径,设想着每一条路径的执行

编译子程序

编译的时候,编译器会帮助我们检查代码中的语法错误。

在调试器中逐行执行代码

Debug模式下,逐行的执行代码,根据执行过程中每个变量的值来判断是否程序是否存在错误。

测试代码

使用测试用例,提供相应的输入数据,查看是否得到期望的值

消除程序中的错误

当发现错误的时候,修复错误。

4) 收尾工作

检测子程序的接口

检查整体的设计质量

检查子程序中的变量

检查子程序的语句和逻辑

检查子程序的布局

检查子程序的文档

除去冗余的注释

posted @ 2012-09-28 18:34  zhouzidan  阅读(627)  评论(0编辑  收藏  举报