阅读代码要像阅读犹太法典

导读:软件开发者 Alan Skorkin 写过一篇文章,讲述他为什么喜欢阅读他人代码,并建议其他同行也如此。因为阅读优秀代码是提高开发人员修为的一种捷径。微软的资深软件工程师 Eric Lippert 在答复同行JeremyK 的问题时也感叹阅读代码很难。

Seth Gordon 给 Joel Spolsky 发过一封电子邮件,分享了有关阅读他人源码的一些不错建议。以下是邮件的译文:

在以色列的神学院学习8个月后,我开始在波士顿当一名技术作家。

一年多前,我和一位同事正试图解释一个Yacc和Perl的怪题,我们打印了部分文档。我们坐下来看代码并逐行讨论,“现在,由于Yacc的工作方式,当遇到*this*这样的数据时,它就将运行*this*函数…… *this* 这一行是做什么的?就*this*这一点,这个混乱的数据结构看起来像什么?”

另一位同事问事情进展如何,我告诉他,“这就像在阅读犹太法典(Talmud)。”

下面就是犹太法典的阅读战术,我认为同样适用于阅读代码:

1. 两人结对进行,相互逐行逐句读代码。(编注:应该轮流解释代码。)

2. 讨论。如果你的搭档说“这个是X的意思”,当你并不理解或者你有其他看法时,请他作出解释。

3. 有时候,当处理一段代码时,很容易找出你能看懂的部分。所以,如果有段代码难住你了,可尝试跳过,稍后返回再看。(最终还是要回到该处的)

4. 阅读代码,既要“从内看”,也要“从外看”。“从内看”就是一个字一个字地把原文解释成英文(或你的母语);“从外看”就是把一段代码诠释成通顺的段落。如果只“从内看”,你会只见树木不见森林;如果只“从外看”,你会只有个宽泛的猜测,无法核实细节。

结语

文章开头提到的JeremyK ,他对阅读不熟悉代码的看法是,自己重写。 关于阅读代码,如果你有其他建议,欢迎在评论中分享。

Joel Spolsky是一名美国软件工程师,他的网络日志“Joel谈软件(Joel on Software)”非常有名,读者人数可以排进全世界前100名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值