Sourcegraph:開發者的福音
眾所周知,開源代碼庫向來都是程序員們的金礦,但是如何從中選擇出合適的代碼並且學會使用它們可是非常需要技巧的。來自 Stanford 的兩名畢業生 Quinn Slack 和 Beyang Liu 開發的 Sourcegraph 給廣大的程序員們帶來了福音。它是一款非常有創新性的代碼搜索引擎和代碼瀏覽器,能夠幫助用戶更快地構建軟體。
Sourcegraph 是一款能夠根據語義來把Web上的開源代碼編入索引的代碼搜索瀏覽工具。你可以從代碼倉庫和安裝包甚至是函數里搜索代碼,同時也可以直接點擊被完全創建了鏈接的代碼來閱讀文檔、跳轉到變數定義或者馬上找到可用的Demo。總而言之,你可以在你的web瀏覽器上完成這一切,而不需要配置任何編輯器。
這裡在Sourcegraph中搜索docker的源碼:將滑鼠放在函數名上點擊一下就會出現代碼框,點擊Go to definition即可跳轉到函數定義的地方。非常方便。
Quinn Slack 和 Beyang Liu 開發 Sourcegraph 的初衷和很多程序員遇到的困難一樣,他們發現大量的時間都被浪費在閱讀了缺乏文檔的代碼上,於是決定開發這一款工具來幫助程序員更好的閱讀和理解代碼。
你是代碼倉庫的作者嗎?
如果你是某個開源項目或者代碼倉庫的作者,你最好讓你的代碼倉庫可以支持Sourcegraph。這樣就意味著Sourcegraph能夠分析你的代碼並且為它們建立索引,項目的貢獻者和使用者就可以在Soucegraph上使用和瀏覽你的代碼了。這些特性可以幫助你的用戶節省大量可能會被花費在尋找和理解代碼上的時間。
根據語義搜索項目、函數或者安裝包
Sourcegraph 採用語義分級來對函數建立索引,這意味著它使用和編譯器一樣的方法來解析和理解代碼。正因為這種索引方式,才能支撐語義搜索和搜尋可用Demo這些特性。Sourcegraph 目前已經支持 Go ,Java 和 Python,同時對 JavaScript、Ruby 和 Haskell 的支持也正在緊鑼密鼓地測試中。所以你現在可以試著搜索一些比較火熱的項目比如 Docker、 the AWS Java SDK, Kubernetes, redis-py,或者你自己的項目等等。
可以互動的代碼片段
你可以在 Sourcegraph 的UI界面上快速高效地瀏覽開源代碼庫,但有時候想將代碼從網頁上分享出去。比如說你可能想要將某個代碼塊嵌入到個人的博客當中或者回答一個論壇的問題,就可以點擊出一個代碼塊,然後點擊上圖的 Embed 按鈕就會生成一段腳本,支持直接貼在博客中。下面是預覽效果:
開源的核心代碼
Sourcegraph的核心分析庫是開源的,而且使用起來非常方便。它被稱為srclib(發音是「Source Lib」)。強大的srclib 支撐著所有你在sourcegraph上看到的和語義分析相關的特性,同時也支持能跳轉到函數定義和語義感知功能的編輯器插件。
來嘗試一下它的功能吧,當然最好能告訴我們你的建議。你可以通過電郵或者推特(@srcgraph)和我們聯繫。我們開發Soucegraph希望它能解決程序員們日常閱讀代碼的痛苦,希望它能幫助到你,我們也非常希望能聽到你們的建議和看法。
下面是原文鏈接:https://opensource.com/business/15/4/better-software-with-sourcegraph
譯文地址: http://www.linuxstory.org/sourcegraph/
王垠