软件随想录(local.joelonsoftware.com/wiki)-2000年05月26日 读程序代码就像读犹太法典 - Reading Code is Like Reading the Tal
2013-01-31 10:57
351 查看
2000年05月26日
读程序代码就像读犹太法典 -
Reading Code is Like Reading the Talmud
navigation,
search
译:Warlocky
Friday, May 26, 2000
属于Joel on Software, http://www.joelonsoftware.com
Seth Gordon 寄给我一些很棒的关于阅读他人程序代码时的建议:
在一家以色列的犹太教学院念了大约八个月的书后,我第一份工作是在波士顿担任技术文件写作人员。
大约一年前,我和另一位同事试著读懂一支用 yacc 及 Perl 写的丑陋程序,它的目的是用来产生我们的一些文件。把整份程序印出来之后,我们坐下来几乎是一行一行地检视。「由于 yacc 的原理是这样,所以它碰到*这种*资料会执行*这个*函数 ... *这行*是干什么用的? ... 在*这个地方*这一沱资料看起来像什么?...」
别的同事问我是怎么做到的,我就告诉他:「这就像读犹太法典一样。」
以下这些阅读犹太法典的技巧我想对阅读程序也会有帮助:
成对进行,并将想法大声念给对方听。
讨论。若你的伙伴说「这个代表 X」但你却不了解个中原因或有不同意见时,请他说明原因。
在阅读程序时,有时候先读完前后的程序*之后*,中间的部份会较容易了解。若你读到一段程序卡住时,先试著跳过去,之后再看看能不能重读一遍(但你最终还是得回来)。
程序的內部运作及外部用法都要理解。了解內部运作时,应将一段一段的程序翻译成中文(或是你自己的母语);观察外部用法时,应将一大段程序转换成直觉的概念。若只看內部运作,难免见树不见林;若只看外部用法,却又难免流于猜测而未佐以具体的细节。
谢谢你,Seth!很棒的建议!
读程序代码就像读犹太法典 -
Reading Code is Like Reading the Talmud
读程序代码就像读犹太法典
From The Joel on Software Translation Project
Jump to:navigation,
search
Reading Code is Like Reading the Talmud
作者:周思博 (Joel Spolsky)译:Warlocky
Friday, May 26, 2000
属于Joel on Software, http://www.joelonsoftware.com
Seth Gordon 寄给我一些很棒的关于阅读他人程序代码时的建议:
在一家以色列的犹太教学院念了大约八个月的书后,我第一份工作是在波士顿担任技术文件写作人员。
大约一年前,我和另一位同事试著读懂一支用 yacc 及 Perl 写的丑陋程序,它的目的是用来产生我们的一些文件。把整份程序印出来之后,我们坐下来几乎是一行一行地检视。「由于 yacc 的原理是这样,所以它碰到*这种*资料会执行*这个*函数 ... *这行*是干什么用的? ... 在*这个地方*这一沱资料看起来像什么?...」
别的同事问我是怎么做到的,我就告诉他:「这就像读犹太法典一样。」
以下这些阅读犹太法典的技巧我想对阅读程序也会有帮助:
成对进行,并将想法大声念给对方听。
讨论。若你的伙伴说「这个代表 X」但你却不了解个中原因或有不同意见时,请他说明原因。
在阅读程序时,有时候先读完前后的程序*之后*,中间的部份会较容易了解。若你读到一段程序卡住时,先试著跳过去,之后再看看能不能重读一遍(但你最终还是得回来)。
程序的內部运作及外部用法都要理解。了解內部运作时,应将一段一段的程序翻译成中文(或是你自己的母语);观察外部用法时,应将一大段程序转换成直觉的概念。若只看內部运作,难免见树不见林;若只看外部用法,却又难免流于猜测而未佐以具体的细节。
谢谢你,Seth!很棒的建议!
相关文章推荐
- 软件随想录(local.joelonsoftware.com/wiki)-2009年03月09日 如何扮演程序经理的角色? - How to be a program manager
- 软件随想录(local.joelonsoftware.com/wiki)-2003年08月01日 Rick Chapman在寻找愚蠢 - Rick Chapman is In Search of St
- 软件随想录(local.joelonsoftware.com/wiki)-2006年01月26日 卓越设计:何谓设计? - Great Design: What is Design?
- 软件随想录(local.joelonsoftware.com/wiki)-2006年10月12日 「超越Java:探讨程序语言的未来」书评
- 软件随想录(local.joelonsoftware.com/wiki)-2001年05月05日 这个国家的狗做什么工作? - What Is the Work of Dogs in this Cou
- 软件随想录(local.joelonsoftware.com/wiki)-2004年01月28日 先生可以赏我一个连结程序吗? - Please Sir May I Have a Linker
- 软件随想录(local.joelonsoftware.com/wiki)-2002年03月04日 没有事情像表面看起来那么简单 - Nothing is as Simple as it Seems
- 软件随想录(local.joelonsoftware.com/wiki)-2004年05月05日 从代码工到开发者 - Coder To Developer
- 软件随想录(local.joelonsoftware.com/wiki)-2001年11月20日 操练严格才好打仗 - A Hard Drill Makes an Easy Battle
- 软件随想录(local.joelonsoftware.com/wiki)-2006年01月25日 介绍卓越设计 - Introduction to Great Design
- 软件随想录(local.joelonsoftware.com/wiki)-2006年05月16日 FogBugz 4½与主观幸福感
- 软件随想录(local.joelonsoftware.com/wiki)-2000年03月19日 两个故事 - Two Stories
- 软件随想录(local.joelonsoftware.com/wiki)-2000年04月18日 使用介面设计手冊第四章 - User Interface Design for Programmers
- 软件随想录(local.joelonsoftware.com/wiki)-2002年08月30日 平台 - Platforms
- 软件随想录(local.joelonsoftware.com/wiki)-2005年12月29日 测测你自己 - Test Yourself
- 软件随想录(local.joelonsoftware.com/wiki)-2006年09月01日 语言战争 - Language Wars
- 软件随想录(local.joelonsoftware.com/wiki)-2000年04月06日 你绝对不应该做的事 之一 - Things You Should Never Do, Part One
- 软件随想录(local.joelonsoftware.com/wiki)-2000年05月24日 策略书之二:鸡生蛋蛋生鸡问题 - Strategy Letter II: Chicken-and-Eg
- 软件随想录(local.joelonsoftware.com/wiki)-2001年12月25日 小员工也能做大事 - Getting Things Done When You're Only a G
- 软件随想录(local.joelonsoftware.com/wiki)-2006年09月12日 再探Ruby效能 - Ruby Performance Revisited