IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

代码的可读性和易读性

kernelchina blogs 2011-09-27 15:37:25 累计浏览 3,007 次
本机暂存

特意区分开这两个不同的概念,前者是大家常常提到的,例如如何命名之类的,估计现在的老师在课堂上也会教。后者是我自己乱起的,是工程中的体会。

工程中同课堂不同的地方是,项目庞大,往往是几十几百万行的code,需要在给定的时间添加新功能或者更加紧迫的是解决客户问题。对于庞大的项目,想要理解系统架构,一个基本的技能要求是快速理解函数调用关系。我们常常使用cscope或者更高级的是source insight等等进行代码的索引,然后可以在编辑器内部快速的跳转。

实际的工程中会遇到一些情况,可读性和易读性相悖,例如:

1.宏替换

在C这种语言中,宏替换是常用或者滥用技巧。利用一些字符串拼接宏定义功能,可以使得代码看起来更加简洁,达到类似复用的效果,可读性好了。但是对于代码浏览者,想要跳转到宏对应的函数麻烦了很多,我们只能通过查找功能手动输入完整的函数进行查找,效率很低。

2.函数间接引用

很多实现模拟C++类方法组织数据结构,使用函数指针;有些实现传递函数指针为参数;也有将指针存储在数据表中通过数据触发调用。总之到底调用那个函数在阅读的时候不容易看到,有些模块从上到下都是如此实现的,头脑鲁钝如我的必须打印trace才知道功能是怎么调用。

对于大系统的开发维护,代码阅读和查找占据了程序员大量的时间,易读性差会耗费许多青春啊。

同分类推荐文章

  1. 科技爱好者周刊(第 401 期):如何赚到10亿美元 (2026-06-26 08:05:38)
  2. 如何做决策 - 从 Go 的一个 issue 说起 (2026-06-26 08:00:00)
  3. Seven Player:Windows上播放115网盘视频的增强工具 (2026-06-09 00:06:47)

查看更多 开发者 文章 →

建议继续学习

  1. 千万不要把 bool 当成函数参数 (累计阅读 5,275)
  2. 前端代码之丑(3):蛋疼的压缩式写法 (累计阅读 3,342)
  3. 如果代码审查时你忘记了拿近视眼镜 (累计阅读 2,834)
  4. 为什么我要垂直对齐代码(你也要如此!) (累计阅读 2,155)