機器之心報道

機器之心編輯部

在軟件開發(fā)的過程中,閱讀和理解代碼是一項基礎(chǔ)工作。無論是實現(xiàn)新功能,還是查找 bug,開發(fā)人員首先要閱讀和理解代碼,這個時間甚至多于編寫代碼。如果能夠像搜索引擎一樣,快速找到開發(fā)需要的上下文代碼,那么軟件開發(fā)的效率將會大幅提升。


(相關(guān)資料圖)

作為全球最大的源代碼托管服務(wù)平臺,2021 年 GitHub 發(fā)布代碼搜索引擎 Code Search 預(yù)覽版,之后 GitHub 又對 Code Search 進行了一系列的優(yōu)化修改,并在今年 2 月公布了技術(shù)細節(jié)。

現(xiàn)在,GitHub 宣布所有用戶都可以使用全新的代碼搜索(code search)引擎和代碼視圖(code view),旨在讓開發(fā)人員能夠快速搜索、導(dǎo)航和理解代碼,最終提高工作效率。

具體來說,GitHub 推出了一個完全重新設(shè)計的搜索界面。新界面不僅提供建議與補全,還能對搜索結(jié)果進行智能分類。

這基于 GitHub 從頭開始構(gòu)建的全新代碼搜索引擎,該引擎的特點是速度更快(大約是舊代碼搜索速度的兩倍),功能更強大(支持子字符串(substring)查詢、正則表達式搜索和符號搜索),并具備一定的代碼理解能力,能將最相關(guān)的結(jié)果放在首位。

此外,研發(fā)團隊還重新設(shè)計了 GitHub 的代碼視圖,將搜索、瀏覽和代碼導(dǎo)航緊密集成起來。

我們來看一下改進之后,GitHub 的應(yīng)用效果。

修復(fù) bug

修復(fù) bug 是軟件開發(fā)中最常遇到的工作情況之一。在修復(fù)之前,開發(fā)者們首先要找到 bug 在哪。一個大型軟件或項目通常具有多個系統(tǒng)或存儲,如果沒有代碼搜索,開發(fā)者就不得不克隆一堆存儲庫并使用 grep 遍歷它們?,F(xiàn)在借助 GitHub 的代碼搜索功能,開發(fā)者可以在大量代碼中進行快速查找:

查找配置文件

在實際開發(fā)中,項目配置往往是硬性限制條件。GitHub 現(xiàn)在為開發(fā)者提供查找配置文件的功能。例如,在代碼中搜索包含「內(nèi)存(memory)」一詞的 YAML 配置文件,就能查看一些內(nèi)存占用情況:

這種查詢功能對于開發(fā)中的資源規(guī)劃與分配至關(guān)重要。

此外,GitHub 還制定了一些避免安全漏洞的規(guī)則,例如禁止使用 dangerouslySetInnerHTML 將危險的字符串注入 DOM。

網(wǎng)友怎么看

GitHub 全新的代碼搜索正式上線后,有網(wǎng)友大贊其功能,稱這是 5 年來最令人印象深刻的產(chǎn)品,優(yōu)秀到可與 ChatGPT 媲美。

還有人表示 GitHub 的代碼搜索功能比 Copilot 或任何大型語言模型(LLM)都有用得多。

但也有一些網(wǎng)友表示,以前的 GitHub 搜索效果很差,更多的時候他們習(xí)慣于使用 git-grep。

看來,全新的 GitHub 代碼搜索需要開發(fā)者們自己嘗試一下,才知道好不好用。

參考鏈接:https://github.blog/2023-05-08-github-code-search-is-generally-available/

標(biāo)簽: