可读性

论坛 期权论坛 脚本     
已经匿名di用户   2022-7-2 21:57   1898   0

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

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

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

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

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

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP