代码大全2笔记-第四章-“构建”前的决策
2008-06-01 23:28
197 查看
主要讲真正开始写代码前的一些关键准备工作,选择编程语言、编程约定、选择主要的构建实践方法。
主要的实践方法有:如何处理错误条件、编码时考虑多少性能因素、可重用的代码遵循哪些标准、写代码前是否先写测试用例、是否会进行
单元测试、check in前是否进行集成测试、是否使用版本控制工具、是否选定其他工具如编辑器,重构工具,调试工具等
代码大全2笔记-第五章-高质量的子程序
先要问问自己,为什么要写函数,在main里把所有功能都实现了不行吗?为什么要写那么多函数,要分布在不同文件中,还要写makefile,
多麻烦。自己给的几个理由如下:
方便重用:如果有10个地方要计算cos,难道把计算cos的代码重复写10遍?(避免代码重复)
增加可读性:把完成一个功能的代码组织成一个函数,起一个有意义的函数名,难道不是更清晰些吗?就像写文章列了个提纲。(引入方便
、易懂的抽象)
降低复杂度:所有功能在main里,main里有几万行代码的话,以后还有谁能维护的?
现在该来讨论下函数的具体细节了。
函数名该怎么写:
合适的长度,多长算合适?个人认为长度是其次,首先要说清楚函数干什么,一般习惯于5-20个字符内
起名时采用动词+宾语的形式,如PrintDocument等
函数该有多长:
最近部门对函数长度问题讨论很多,书中的结论是,函数写的长还是短,和成本、效率、出错率等没有必然关系,但有一点可以肯定,短的
函数比长的函数可读性高,易维护,所以,能写短就尽量写短点吧,部门要求是最好50行内。
函数参数有哪些要注意的:
按照输入-修改-输出的顺序排列参数,这种方法暗含了程序内部的处理逻辑,即先读取输入,再修改数据,最后输出结果。
使用所有的参数。如果没用到,删除该参数。
不要把函数参数用作工作变量,可以用局部变量来代替函数参数。这点很重要。
对函数参数的假定加以说明,比如所能接受的范围、不该出现的假定值等。这里有个小问题,这个参数检查该在什么地方做呢?调用函数之
前,还是在函数内,我的习惯是函数内肯定要做检查,因为调用我函数的可能是别人,我不能要求别人做检查,只好自己先检查好。
参数该传递一个结构体,还是结构体中的某几项数据?原则上,如果在函数内声明一个该结构体的局部变量,然后从参数中(结构体)把函
数所需的3项数据填入局部变量,使用时再从局部变量中取出3项数据的值,那就说明应该只传递这3项数据,而非真个结构体变量。
函数的返回值。首先要确保所有路径都能返回正确的返回值,其次,很关键的一点,不要返回指向局部数据的指针。
主要的实践方法有:如何处理错误条件、编码时考虑多少性能因素、可重用的代码遵循哪些标准、写代码前是否先写测试用例、是否会进行
单元测试、check in前是否进行集成测试、是否使用版本控制工具、是否选定其他工具如编辑器,重构工具,调试工具等
代码大全2笔记-第五章-高质量的子程序
先要问问自己,为什么要写函数,在main里把所有功能都实现了不行吗?为什么要写那么多函数,要分布在不同文件中,还要写makefile,
多麻烦。自己给的几个理由如下:
方便重用:如果有10个地方要计算cos,难道把计算cos的代码重复写10遍?(避免代码重复)
增加可读性:把完成一个功能的代码组织成一个函数,起一个有意义的函数名,难道不是更清晰些吗?就像写文章列了个提纲。(引入方便
、易懂的抽象)
降低复杂度:所有功能在main里,main里有几万行代码的话,以后还有谁能维护的?
现在该来讨论下函数的具体细节了。
函数名该怎么写:
合适的长度,多长算合适?个人认为长度是其次,首先要说清楚函数干什么,一般习惯于5-20个字符内
起名时采用动词+宾语的形式,如PrintDocument等
函数该有多长:
最近部门对函数长度问题讨论很多,书中的结论是,函数写的长还是短,和成本、效率、出错率等没有必然关系,但有一点可以肯定,短的
函数比长的函数可读性高,易维护,所以,能写短就尽量写短点吧,部门要求是最好50行内。
函数参数有哪些要注意的:
按照输入-修改-输出的顺序排列参数,这种方法暗含了程序内部的处理逻辑,即先读取输入,再修改数据,最后输出结果。
使用所有的参数。如果没用到,删除该参数。
不要把函数参数用作工作变量,可以用局部变量来代替函数参数。这点很重要。
对函数参数的假定加以说明,比如所能接受的范围、不该出现的假定值等。这里有个小问题,这个参数检查该在什么地方做呢?调用函数之
前,还是在函数内,我的习惯是函数内肯定要做检查,因为调用我函数的可能是别人,我不能要求别人做检查,只好自己先检查好。
参数该传递一个结构体,还是结构体中的某几项数据?原则上,如果在函数内声明一个该结构体的局部变量,然后从参数中(结构体)把函
数所需的3项数据填入局部变量,使用时再从局部变量中取出3项数据的值,那就说明应该只传递这3项数据,而非真个结构体变量。
函数的返回值。首先要确保所有路径都能返回正确的返回值,其次,很关键的一点,不要返回指向局部数据的指针。
相关文章推荐
- 第四章关键的构建决策(代码大全2)
- 【代码大全】第4章 关键的“构建“决策
- CODE COMPLETE NOTES 代码大全笔记 (SOFTWARE CONSTRUCTION)软件构建
- 代码大全2笔记-欢迎进入软件构建的世界
- 代码大全2笔记-第一章-软件构建
- 读书笔记_代码大全_第4章_关键的“构建”决策
- 代码大全2笔记-第二章-隐喻
- 代码大全2笔记-第三章-前期准备
- 第27章程序规模对构建的影响(代码大全9)
- 面向对象之子程序的设计及防御编程_代码大全笔记(三)
- 树回归:CART算法构建回归树和模型树(代码笔记)
- 代码大全第二版阅读笔记
- 去年写的代码大全笔记(其实是摘记)
- 代码大全阅读笔记
- 变量_代码大全笔记(三)
- 【代码大全】第21章 协同构建
- 第二行代码学习笔记——第四章:手机平板要兼容——探究碎片
- 对xib构建的UITableViewCell的重用方法和代码添加约束的方法 学习笔记
- 读代码大全2——第四章 关键的“构建”决策
- 代码大全--软件构建中的设计