说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我们是如何阅读代码的?

HTML文档下载 WORD文档下载 PDF文档下载
作者Eric Holk近日接受了一份调查研究《人们是如何理解程序的?》,通过回顾视频,Eric发现大脑如同计算机一样工作。作为程序员,你平时又是如何阅读代码的呢?

最近,我参与了一项针对程序员心理测试工作。我的一位朋友Mike Hansen做了一份关于《人们是如何理解程序的?》的调查报告,旨在找出编程系统中的一些特性以便帮助程序员明白他们做了什么,以及如何使系统产生高质量的软件。在进行实验测试时,Mike向开发者们展示了几个简短的Python程序并且告诉他们其输出的程序,在测试对象前面设置了眼球追踪仪,以便他能清楚地看到测试过程中不同阶段的工作情况。

幸运的是,我也成为测试对象中的一员。随后,Mike给我分享了利用眼球追踪仪拍下的一段视频,如下:

点击查看视频(需翻墙)

在观看整个视频过程中,另我感到吃惊的是,我们的大脑就像计算机一样工作。

首先,我阅读了整个程序,然后开始解释程序。该程序需要解决调用两个函数的问题,一个是between;另一个是common。第一次调用between时,在调用站点和定义函数上,我花费了很长时间;第二次调用时,我只看了下定义函数。

在编程语言中,我似乎在做一些类似(just-in-time)即时编译。通过第一次调用,我阅读并解释了每一个指令。之后,我能记得某个函数的功能并且能够快速输出程序。第一次调用解释大约占用24秒,而在第二次时仅用了10秒。

另一个观察是,函数命名似乎很有帮助,我能够迅速地通过common来执行工作。与此同时,在阅读整个程序时,我在想“这个应该是两个数组中的返回元素。”阅读整个程序以确认这个命名如它所暗示的那样,然后我可以在我的脑海中做出相同的操作,而不是通过解释代码来做。

我很期待看到Mik的演讲能说明什么。

令Mike感兴趣的是,了解没有经验的程序员从有经验的程序员那学到哪些经验。比如,变量命名可以帮助有经验的程序员快速理解代码。另一方面,没有经验的程序员不必在意函数里的变量是如何命名的。

如果你这个调研感兴趣,你可以发邮件给mihansen@indiana.edu,相信你会有所收获。

英文出自:Theincredibleholk

欢迎关注研发微博参与互动。

赚钱不忘环保 苹果计划为数据中心兴建太阳能发电厂 深度解析:清理烂代码 电信开放平台发布短信验证码API 创业教父Paul Graham谈创业投资趋势 挖掘Linux人才,打造Power生态系统!IBM启动“天合应用服务器定义未来挑战赛” 请不要忽略API的安全性 发布将近?苹果在多地注册“iWatch”商标 苹果聘请某时尚公司CEO为副总裁 将负责“特殊项目” 雅虎5000万美元收购视频分享应用Qwiki 创业第一年易犯的8大错误 苹果推iOS游戏手柄,掌上游戏主机格局变天? 代码审查固然伟大,那还有其他替代品吗? 怎样维护一个成功的开源项目 麻省理工专家发布新系统Ascend,专注内存访问安全缺陷 Oracle Database 12c面临的最大挑战是开源+开放的生态系统?! 浸入式数据中心:高密度计算的新前沿 2013年腾讯合作伙伴大会要点回顾 “鼠标之父”和超文本研究先驱Douglas Engelbart去世 享年88岁 Web服务器排行:Nginx超越Apache 成为全球TOP 1000网站最常用的Web Server Windows 8之父Steven Sinofsky正式离职微软 不得接受竞争者聘用 Yelp处理1.02亿/月绝对造访人次及3900万评论的省钱秘诀 可视化:图像的主题色提取算法,是不是太高端了? 不利于写出好代码的15个职场因素 GPU Saturday技术沙龙:分享异构计算新技术及应用 微软隐藏最深的秘密武器之一——Visual Studio可作为Python IDE 历时六月,Qt 5.1正式版终于面世! HTML5全硬件加速游戏引擎:Sphinx正式公测 专访“Monster Blade”创始人:无需营销,百万下载背后的秘密 Twitter实时分析平台主要合作伙伴Dataminr:让用户不再错过重要的推文 OpenStack、OpenNebula、Eucalyptus、CloudStack社区活跃度比较 XOR的黄色大象:Erasure Code为Hadoop节省数据恢复带宽 建议post时增加贴图功能. 除了吹牛,还会干什么? 执行UPDATE语句时候,执行条件变化时候速度有很大不同 给大家一个免费的电子邮箱 如何将一个xml中的Element或Node添加到另一个xml中?100相送!!! 高手进来。我不知道为什么经常出在数据库不能更新的问题。?? 精彩不容错过 Runtime类使用时遇到一个问题,请高手指点,先谢了! 需要UNIX网络编程(第2版 第一卷)的电子版本的书籍! 怎样让builder.parse()忽略DTD找不到的错误继续分析? 各位大侠,请帮忙,jsp页面出现空白,怎样解决? 在JBuilder中有多个Frame如何指定其中(任意一个为首先启动的Frame) 如果有入口函数main,系统就认为是PUBLIC 类?? pb+db2,导出excel表时要对表的某个字段转换时到80条左右就为空白(共2000条) 怎样把数据库中的各个表到成文件形式呢? 请如何用命令解开由jar生成的压缩文件? 水晶报表打印问题(在线等)! 我想让JFileChooser的savedialogue在按了approve后仍能保持一会,怎么办? 简单的程序!先谢谢了! 谁有遇到这种情况,使用80以外的端口建站,有部分用户无法访问网站? 怎么使图片可以直接粘贴到编辑框中,直接上传到服务器上呢?? insert语句怎么判断是否成功啊? 希望熟悉delphi调用excel的朋友解答,越多越好,分不够再加 问一个ResultSet的问题? 控件开发遇到的子属性设置问题,大侠请进 lpn来接分 关于计算机等级考试的问题 啊呀 来晚了! 赶快补上一份祝福 上海日記:减肥成绩 report中字体重叠的问题 如何忽略大小写? 【水园中秋庆典主会场】每逢佳节倍思情,所有不在亲人身边的游子们进来坐坐吧。祝天下所有的严父慈母身体健康! qiockReport中,detail中如何补空行。使其打印完一页 国内哪家在uclinux方面做的比较好? DataGrid更新记录时出现问题 ADSL上网问题请教! 怎样修改xp的输入法切换的快捷键? 关于ADO对象的问题??求助。 如何卸载AIX上的Domino5.011? 求助:我的.net程序在某机器上报错"String was not recognized as a valid DateTime" keil的断点不能设置了。 请问我怎么知道我的sql server服务器名? 小女子急需一个JSP+JMAIL实现的邮件群发(含附件),非常之急!!! 我提供空间,大家有什么资料可以共享的话,可以和我联系 sqlserver7远程连接问题,客户端无线上网,网络库用multiprotocol,本来可以连接,装了防火墙就不行 如何将一幅图片转成二进制流的格式?? 简单问题!请高手指教! 控件obout_SlideMenu_Pro_NET的使用问题 关于servlet和提交页面的问题求教 xmsjms就是21bird的马甲!你们CSDN玩得太过分了!强烈谴责21bird玩弄大家!up就有分! xmsjms就是21bird的马甲!你们CSDN玩得太过分了!强烈谴责21bird玩弄大家!up就有分! 语文《人琴俱亡》一道题,急~~~~~~~~~~有人认为“弦既不调”,说明琴有灵性,跟随主人一起“死”了,你同意这种说法吗?为什么? 《人琴俱亡》问题分析从王子猷对王子敬的深厚情感上,你有什么感触? 人琴俱亡翻译加例题 防止直接接触电击的防护措施? 马化腾什么时候才死啊弄的DNF卡死了,他什么时候才去死啊. 师傅们!做发动机断缸试验时老是被电击,有什么办法经验避免电击? pleasure是什么意思? 英语pleasure的意思和提问my pleasurewith pleasurewith a pleasurea pleasure这四种的意思和对应的提问都说一下吧…… 武器的终极理念是不是就是毁灭或者就是消失或者这么说终极武器就是毁灭毁灭一切 人别杀死 人类思维的消失 假设存在一种极限情况,水中物体受到的浮力是否会消失?根据了解,物体产生的浮力是因为上下面之间造成的压力差,而导致物体受到一个向上的作用力.但是如果假设有这么一个极限的情况,物 世界到终极之后,有设么意义呢?是永远的存在还是侧彻底的毁灭?就是觉得想不清楚 俄计划将驻吉尔吉斯斯坦一空军基地飞机日本3男女光天化日在公园拍AV被警方中国部分军事设施现安全隐患 影响武器黑客因不满新加坡媒体局规定威胁将发动美泄密士兵欲在狱中以女性身份生活 或中东欧四国支持西巴尔干国家加入欧盟日本农工商界携手强化农业国际竞争力 罗马尼亚:保管箱频失窃 银行安全自查黎晓宏任中央巡视工作领导小组办公室主4G临近 中国三大运营商相继抛出采购大众点评网就麦当劳团购事件道歉广州美食节年年差不多 拿什么拯救你?中组部开通“12380”短信举报平台新疆神鸟出没酷似凤凰 揭千奇百怪的动广州215路“爱心巴士”开通满月 让重度霾侵袭河北 石家庄霾中见蓝天(组关于豆浆 你不知道的8大神效(图)哈尔滨口腔医生李宇杰组建新疆青河县牙延安供电公司:客户设备跳闸率同比降低5种食物是天然青霉素 缓解冬季流感女性健康:7种毒素致你一夜衰老 宿便阜康市法院援疆干部投身基层“一线”锤千骑卷平冈妾本无邪喜迎门悠闲生活美滋滋贴身暧昧死神猎手近身教师贴身保镖俏校花异世逍遥系统游戏时代绝对侵占禹帽峰旅游金梭岛旅游吴淞湿地公园旅游良友生活记忆馆旅游聊城古城旅游水城广场旅游乌鲁木齐儿童公园旅游七股潟湖旅游南越王宫博物馆旅游仕女馆旅游陆羽茶社旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘