代码的可读性和易读性
浏览:1892次 出处信息
特意区分开这两个不同的概念,前者是大家常常提到的,例如如何命名之类的,估计现在的老师在课堂上也会教。后者是我自己乱起的,是工程中的体会。
工程中同课堂不同的地方是,项目庞大,往往是几十几百万行的code,需要在给定的时间添加新功能或者更加紧迫的是解决客户问题。对于庞大的项目,想要理解系统架构,一个基本的技能要求是快速理解函数调用关系。我们常常使用cscope或者更高级的是source insight等等进行代码的索引,然后可以在编辑器内部快速的跳转。
实际的工程中会遇到一些情况,可读性和易读性相悖,例如:
1.宏替换
在C这种语言中,宏替换是常用或者滥用技巧。利用一些字符串拼接宏定义功能,可以使得代码看起来更加简洁,达到类似复用的效果,可读性好了。但是对于代码浏览者,想要跳转到宏对应的函数麻烦了很多,我们只能通过查找功能手动输入完整的函数进行查找,效率很低。
2.函数间接引用
很多实现模拟C++类方法组织数据结构,使用函数指针;有些实现传递函数指针为参数;也有将指针存储在数据表中通过数据触发调用。总之到底调用那个函数在阅读的时候不容易看到,有些模块从上到下都是如此实现的,头脑鲁钝如我的必须打印trace才知道功能是怎么调用。
对于大系统的开发维护,代码阅读和查找占据了程序员大量的时间,易读性差会耗费许多青春啊。
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:电子商务关键数字优化(线上部分,上)
后一篇:闲谈翻译 >>
文章信息
- 作者:appleleaf 来源: kernelchina blogs
- 标签: 可读性 易读性
- 发布时间:2011-09-27 15:37:25
建议继续学习
近3天十大热文
- [283] WEB系统需要关注的一些点
- [15] 哪本书是对程序员最有影响、每个程序员都该阅读
- [13] 一次神奇的MySQL优化
- [13] Python程序的执行原理
- [12] 深入剖析 redis replication
- [12] InnoDB insert性能拐点测试
- [11] 我的git笔记
- [11] 业务流程图的绘制流程分享(一)
- [11] Spark性能优化——和shuffle搏斗
- [11] 修改系统最大文件句柄数