Google的案例研究:開發者是怎麼搜代碼的?


寫代碼的人肯定都搜過代碼吧。既然有現成的,何必重新發明輪子呢?在代碼庫日益豐富、搜索功能越來越高級的背景下,代碼搜索已經成為一項關鍵的軟件開發活動,而且實際上也是一項非常有用的技能。那開發者一般都是怎麼去搜索代碼的呢?針對這個問題,Google 特地在內部進行了一項案例研究。研究採用了調查和日誌分析相結合的辦法,得出了一些有趣的結果。

研究人員在 15 天內對 Google 的 27 名軟件工程師進行調查,然後結合搜索日誌份分析發現,開發者搜索代碼的行為越來越頻繁了,基本上每工作日平均要進行 5 次搜索會話、12 次代碼查詢,比普通用户的搜索行為還要多。

開發者代碼搜索的目的各種各樣:比方説代碼作用是什麼?代碼在哪裏實例化?代碼為什麼會這樣工作?誰負責編輯代碼?如何執行一項任務等。其中想了解代碼怎麼調用(How)的搜索佔了 22%,想知道某段代碼是幹什麼(What)用的佔了搜索的 20%,要查找某個類在哪裏(Where)被實例化的佔到 8.5%,想要了解為什麼某個東西會失敗的佔到了 10%,而想要了解是誰什麼時候改動了代碼的佔 5%。

開發者的代碼搜索工具有很多,包括 Koders、Google、Google Code Search、Krugle [14], SourceForge、GitHub、CodeGenie、Sourcerer、Satsy 等,其中不乏利用了更加語義化的功能,這對於提高搜索的命中率很有幫助。

研究認為,相對一般用户,開發者執行搜索的頻率非常高,因此,搜索的速度和精度會對開發者的生產力造成很大影響。此外,開發者搜索的很大一部分精力都放在代碼樣例的查找上,所以必須加強對編程例子的支持。第三點是開發者搜索的一般都是自己熟悉或比較熟悉的本地庫,尋找的都是多少有些熟悉的代碼,鑑於此,開發環境可能最好把代碼搜索功能給集成進來。

你為什麼要搜代碼?一般用什麼工具搜代碼?去哪裏搜?搜代碼又有什麼祕訣呢?不妨在評論欄貢獻你的答案。

Google 的案例研究論文可參見此處

原創文章,作者:boxi


資料來源:36Kr

如果喜歡我們的文章,請即分享到︰