Google的案例研究:开发者是怎么搜代码的?

标签: 专栏 | 发表时间:2015-08-28 22:13 | 作者:boxi
出处:http://36kr.com

Image title

写代码的人肯定都搜过代码吧。既然有现成的,何必重新发明轮子呢?在代码库日益丰富、搜索功能越来越高级的背景下,代码搜索已经成为一项关键的软件开发活动,而且实际上也是一项非常有用的技能。那开发者一般都是怎么去搜索代码的呢?针对这个问题,Google特地在内部进行了一项案例研究。研究采用了调查和日志分析相结合的办法,得出了一些有趣的结果。

研究人员在15天内对Google的27名软件工程师进行调查,然后结合搜索日志份分析发现,开发者搜索代码的行为越来越频繁了,基本上每工作日平均要进行5次搜索会话、12次代码查询,比普通用户的搜索行为还要多。

开发者代码搜索的目的各种各样:比方说代码作用是什么?代码在哪里实例化?代码为什么会这样工作?谁负责编辑代码?如何执行一项任务等。其中想了解代码怎么调用(How)的搜索占了22%,想知道某段代码是干什么(What)用的占了搜索的20%,要查找某个类在哪里(Where)被实例化的占到8.5%,想要了解为什么某个东西会失败的占到了10%,而想要了解是谁什么时候改动了代码的占5%。

Image title

开发者的代码搜索工具有很多,包括Koders、Google、Google Code Search、Krugle [14], SourceForge、GitHub、CodeGenie、Sourcerer、Satsy等,其中不乏利用了更加语义化的功能,这对于提高搜索的命中率很有帮助。

研究认为,相对一般用户,开发者执行搜索的频率非常高,因此,搜索的速度和精度会对开发者的生产力造成很大影响。此外,开发者搜索的很大一部分精力都放在代码样例的查找上,所以必须加强对编程例子的支持。第三点是开发者搜索的一般都是自己熟悉或比较熟悉的本地库,寻找的都是多少有些熟悉的代码,鉴于此,开发环境可能最好把代码搜索功能给集成进来。

你为什么要搜代码?一般用什么工具搜代码?去哪里搜?搜代码又有什么秘诀呢?不妨在评论栏贡献你的答案。

Google的案例研究论文可参见 此处

相关 [google 研究 开发] 推荐:

Google的案例研究:开发者是怎么搜代码的?

- - 36氪
既然有现成的,何必重新发明轮子呢. 在代码库日益丰富、搜索功能越来越高级的背景下,代码搜索已经成为一项关键的软件开发活动,而且实际上也是一项非常有用的技能. 那开发者一般都是怎么去搜索代码的呢. 针对这个问题,Google特地在内部进行了一项案例研究. 研究采用了调查和日志分析相结合的办法,得出了一些有趣的结果.

广告系统研究——Google AdMob

- - 牛国柱
前言:对产品的研究,并不仅仅是看产品是如何设计的,更多的时候是要看产品是如何适可而止的. 在研究的过程中,如同和该产品的产品经理切磋一样,双方你来我往、你一言我一句,互相讲述着自己对产品设计、对用户体验以及对产品功能的理解. 与高手过招,方能醍醐灌顶,功力日益精进. 因此对广告系统的研究,第一站我们就看谷歌的AdMob系统.

有感Google的混合研究方法

- - Tim[后端技术]
对于一个长期在研发领域的人来说,经常需要思考研发的意义、工程与研究的关系、产品型的公司应当做何种程度的研究等问题. 理想情况下,我们期望每一项研发工作都能得到组织、同事以及社区的高度认可. 因此不管你处于工程领域还是研究领域,工程与研究的关系会让你不断思考甚至困扰. 最近看到的Google’s hybrid Approach to research ( English 中文) 一文或许会让你豁然开朗.

Google要給你錢參與Google+的研究,你要參加嗎?

- 幻幽 or A書 - TechOrange
Google 顯然真的是認真的,這回還準備大舉發放獎金,讓使用者幫忙改善 Google+. 只要願意參加研究,並填妥資料,Google 就會送你價值 $ 75 美金的 American Express 禮金. 這個研究會在這個月或下個月進行,只要符合以下條件的朋友,都有可能被 Google 選中,還不快上.

Google研究称C++是性能最优越的语言

- ashuai - Solidot
Google发表了一篇研究论文(PDF),声称C++是目前市场上性能最好的程序语言. 搜索巨人分别用C++、Java、Scala和其发明的Go语言实现一种压缩算法,然后测试其性能. 结果显示,C++远胜其它三种语言. 虽然C++性能最优越,但Google同时指出它实现起来太复杂,超出了普通程序员的水平,而Java则“最容易实现”.

研究表明:Google+在家长中更受欢迎

- 洞箫 - cnBeta.COM
数据分析机构Hitwise分析了Google+开放后六个星期的早期用户群,结果十分出乎意料. 分析表明,因为受邀请注册的影响,中年,住在郊区的家长用户群比跟他们孩子一般大的学生用户群更多,达到2.9%,而学生用户只有0.7%.

微软研究人员:Google+实名政策是滥用权力

- Aragorn - cnBeta.COM
一位微软研究人员强烈抨击谷歌为Google+服务制定的严格的“实名制”政策. 谷歌已经删除了使用假冒名字或者化名的Google+账户. Google+要求其2500万用户填写谷歌用户简介. 用户填写在公共网页上的内容有助于连接和找到在现实世界中人.

研究:大學生其實跟 Google 不太熟

- tinda - TechOrange
一項由美國伊利諾伊州 5 間大學聯手進行、為期 2 年的學生線上搜尋行為民族誌研究報告出爐,研究顯示雖然 Google 是最常被提及的線上工具,大部份學生都表示會使用 Google 資料庫進行資料搜尋,但研究結果同時也指出,大學生們似乎不太懂得該如何使用 Google. 研究一共深度訪談了 156 名學生,提及 Google 的頻率明顯高於其他資料搜尋工具,但是在與研究員合作進行參與觀察的 60 位學生中,研究員卻發現他們使用 Google 的方式不太有效率,意思就是說,研究發現雖然大學生們經常使用 Google,但從他們的使用行為中卻觀察出不太擅長的現象.

Google 发布 Think Insights 研究中心,方便市场人员获取数据

- Felix - 谷奥——探寻谷歌的奥秘
Google宣布推出Think Insights,这是一个专为市场调查人员获取数据的研究中心,其属于ThinkWithGoogle.com的下属产品,也是同一个团队的作品. Google称之为市场调查人员的“数字化小抄儿”:. 在这里你可以找到一批来自Google内部和外部渠道获取的研究数据,Google自己也在利用这些数据来决定自己的战略、决定和产品.

Google研究人员提出防止机器人造反的方法

- - Solidot
无数的科幻电影和小说描绘了产生自我意识机器人的起义以及随后的人类的灭绝. 今天的机器人距离产生自我意识还很遥远,但对于越来越依赖于人工智能的现代社会,我们至少需要一些措施以防止人工智能工作异常. Google Deep Mind团队和牛津大学的研究人员发表了一篇论文《Safely Interruptible Agents》(PDF)就描述了这样一个机制.