可读性

如何提高代码的可读性是一个永恒的话题。

通常认为程序员需要具备较高的“数学”功底。毕竟要掌握各类模式和算法都依赖很强的逻辑思维能力。然而在经历了一段职业生涯后,我发现程序员的“语文”能力也同样重要。《重构》一书中就提出:唯有优秀的程序员能够写出人类能理解的代码。软件的规模越来越大,一个系统通常需要几代程序员来开发维护。然而这些程序员们往往都素未谋面,只能“神交”于代码的字里行间。

提到可读性,往往涉及两个方面,一是读者的理解能力,二是作者的表达能力。比如我个人总认为自己在阅读文字时存在阅读障碍,然而读代码还较有心得。因为我很乐于去揣摩代码作者的意图,特别是在遇到一些很晦涩的代码时。

在实际工作中也经常听到一些程序员抱怨:这样的代码简直无法维护,还不如推倒重写。如果你也碰到这种情况,我想请你先思考一下,是自己的理解能力问题,还是原作者的表达能力问题,然后再决定下一步动作。同时我也总结了一条心得和大家分享:真正的高手不但要能写得出好代码,还要能驾驭得了烂代码。

我曾自我剖析造成阅读障碍的原因,主要是阅读量不够。我的确不爱读书!但我确读(调试)过很多开源软件代码。我曾接触的第一个开源软件叫sox,它是一款Linux下的音频处理软件,支持多种音频格式。我花了很长时间去调试,并搞懂了它的框架和算法,并把其中一部分代码用到了我自己开发的软件里。在我后来读了《设计模式》以后才意识到,sox实际上是用C语言实现了一个策略(strategy)模式来支持各种音频格式。

从“语文”的角度看,代码的文体应该属于“说明文”或“记叙文”,要着眼于把事情说清楚。而并非“诗歌”、“散文”或“小说”,存在着很多“暗喻”和“伏笔”,需要读者揣摩。本节我们主要讨论一下表达能力方面的问题,即:代码如何能清晰的表达作者的意图,让人类易于理解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值