软件随想录(local.joelonsoftware.com/wiki)-2000年05月26日 读程序代码就像读犹太法典 - Reading Code is Like Reading the Tal

本文主要是介绍软件随想录(local.joelonsoftware.com/wiki)-2000年05月26日 读程序代码就像读犹太法典 - Reading Code is Like Reading the Tal,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2000年05月26日 读程序代码就像读犹太法典 - 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 的原理是这样,所以它碰到*这种*资料会执行*这个*函数 ... *这行*是干什么用的? ... 在*这个地方*这一沱资料看起来像什么?...」
别的同事问我是怎么做到的,我就告诉他:「这就像读犹太法典一样。」
以下这些阅读犹太法典的技巧我想对阅读程序也会有帮助:
  1. 成对进行,并将想法大声念给对方听。
  2. 讨论。若你的伙伴说「这个代表 X」但你却不了解个中原因或有不同意见时,请他说明原因。
  3. 在阅读程序时,有时候先读完前后的程序*之后*,中间的部份会较容易了解。若你读到一段程序卡住时,先试著跳过去,之后再看看能不能重读一遍(但你最终还是得回来)。
  4. 程序的內部运作及外部用法都要理解。了解內部运作时,应将一段一段的程序翻译成中文(或是你自己的母语);观察外部用法时,应将一大段程序转换成直觉的概念。若只看內部运作,难免见树不见林;若只看外部用法,却又难免流于猜测而未佐以具体的细节。
谢谢你,Seth!很棒的建议!

Page_of_Talmud.jpg

 

这篇关于软件随想录(local.joelonsoftware.com/wiki)-2000年05月26日 读程序代码就像读犹太法典 - Reading Code is Like Reading the Tal的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885331

相关文章

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑