代码的可读性和易读性
浏览:2037次 出处信息
特意区分开这两个不同的概念,前者是大家常常提到的,例如如何命名之类的,估计现在的老师在课堂上也会教。后者是我自己乱起的,是工程中的体会。
工程中同课堂不同的地方是,项目庞大,往往是几十几百万行的code,需要在给定的时间添加新功能或者更加紧迫的是解决客户问题。对于庞大的项目,想要理解系统架构,一个基本的技能要求是快速理解函数调用关系。我们常常使用cscope或者更高级的是source insight等等进行代码的索引,然后可以在编辑器内部快速的跳转。
实际的工程中会遇到一些情况,可读性和易读性相悖,例如:
1.宏替换
在C这种语言中,宏替换是常用或者滥用技巧。利用一些字符串拼接宏定义功能,可以使得代码看起来更加简洁,达到类似复用的效果,可读性好了。但是对于代码浏览者,想要跳转到宏对应的函数麻烦了很多,我们只能通过查找功能手动输入完整的函数进行查找,效率很低。
2.函数间接引用
很多实现模拟C++类方法组织数据结构,使用函数指针;有些实现传递函数指针为参数;也有将指针存储在数据表中通过数据触发调用。总之到底调用那个函数在阅读的时候不容易看到,有些模块从上到下都是如此实现的,头脑鲁钝如我的必须打印trace才知道功能是怎么调用。
对于大系统的开发维护,代码阅读和查找占据了程序员大量的时间,易读性差会耗费许多青春啊。
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:电子商务关键数字优化(线上部分,上)
后一篇:闲谈翻译 >>
文章信息
- 作者:appleleaf 来源: kernelchina blogs
- 标签: 可读性 易读性
- 发布时间:2011-09-27 15:37:25
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] android 开发入门
- [65] 如何拿下简短的域名
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则