关于编程风格--这几天看他人代码的一点感受
2013-09-26 14:08
387 查看
这几天看别人的代码,一点感受总结如下,求讨论~
1.函数的返回值
不明白什么情况下会有不需要返回值的函数。
个人认为返回值是必须的,而且不应该用来作为对象返回使用,而应该用于标识函数执行的结果:成功,失败。失败时应该提供错误码。对象返回拜托使用函数的参数区完成。
2.命名
代码的可阅读性很大程度决定于命名。比如函数的参数,请明确通过参数名标识该参数是入参还是出参。比如变量,请标识数据类型。像haha[],haha2[]这样的参数真的很让人想骂娘。
命名里还包括全局变量命名,函数命名。对于面向对象的程序还包括类,方法,成员变量的命名。很赞同一位同事的话:代码是写给人看的,不是给机器看的。请考虑看代码人的感受。
3.宏定义
对于if,switch之类的地方,请尽量使用宏定义进行判断。
4.打印
打印请统一格式,一定要按照级别打印。不然,请试想在汪洋大海的打印信息中查找关键的一条信息的感受。
另外,应该要求每条打印都输出自身的文件名和行数。特别对于c语言,定位的时候很有用的东西。试想,发现一个出错前的打印信息居然在工程的两个不同地方都有出现,你不想骂人么。
5.注释
结构体定义请顺便注释上每个字段的含义,对于固定取值的字段标准上各个取值对应的含义。
6.abort 请慎用
居然在代码里看到一个判断为空时整个程序abort的代码。太惊悚了。通信设备一般情况都是7×24小时工作的,一般的错误就abort ,兄弟们会恨你的!
ps:想起曾经在某本书里看到,推荐的函数定义为 :
int32 funcName (int iInlen,void * inPtr,int iOutLen, void * outPtr);
1.函数的返回值
不明白什么情况下会有不需要返回值的函数。
个人认为返回值是必须的,而且不应该用来作为对象返回使用,而应该用于标识函数执行的结果:成功,失败。失败时应该提供错误码。对象返回拜托使用函数的参数区完成。
2.命名
代码的可阅读性很大程度决定于命名。比如函数的参数,请明确通过参数名标识该参数是入参还是出参。比如变量,请标识数据类型。像haha[],haha2[]这样的参数真的很让人想骂娘。
命名里还包括全局变量命名,函数命名。对于面向对象的程序还包括类,方法,成员变量的命名。很赞同一位同事的话:代码是写给人看的,不是给机器看的。请考虑看代码人的感受。
3.宏定义
对于if,switch之类的地方,请尽量使用宏定义进行判断。
4.打印
打印请统一格式,一定要按照级别打印。不然,请试想在汪洋大海的打印信息中查找关键的一条信息的感受。
另外,应该要求每条打印都输出自身的文件名和行数。特别对于c语言,定位的时候很有用的东西。试想,发现一个出错前的打印信息居然在工程的两个不同地方都有出现,你不想骂人么。
5.注释
结构体定义请顺便注释上每个字段的含义,对于固定取值的字段标准上各个取值对应的含义。
6.abort 请慎用
居然在代码里看到一个判断为空时整个程序abort的代码。太惊悚了。通信设备一般情况都是7×24小时工作的,一般的错误就abort ,兄弟们会恨你的!
ps:想起曾经在某本书里看到,推荐的函数定义为 :
int32 funcName (int iInlen,void * inPtr,int iOutLen, void * outPtr);
相关文章推荐
- C++代码书写风格的一点小结(也许会对编程经验在两个月以下的程序员会有一定参考价值)
- 关于编程命名规则与代码风格
- 关于编程风格与代码可读性(1)
- 关于C编程的一点感受
- 关于C编程的一点感受
- 关于Web2.0特性的一点感受(部分摘取他人的文章)
- 关于知乎话题“程序员有哪些借口可以让自己写出低质量的代码?”的一点想法
- Object-C 声明属性为什么用下划线,代码规范和编程风格
- Object-C 声明属性为什么用下划线,代码规范和编程风格
- 自说明代码:关于注释的一点事儿
- 在线考试系统关于打印试卷的部分的一点代码
- 关于JAVA 的MVC设计模式 的一点学习感受
- 关于代码折叠的一点改进意见
- 记录一点关于list每次以指定的间距分割的代码,仅做一个记录
- 关于代码规范的一点心得
- 关于使用sping MVC框架进行文件上传的一点感受
- Scala深入浅出进阶经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用
- 关于代码风格的两篇文章
- 关于runtime的一点理解代码
- 关于编程风格和文档的扩展指南