機器之心報道

機器之心編輯部

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


(相關資料圖)

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

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

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

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

此外,研發團隊還重新設計了 GitHub 的代碼視圖,將搜索、瀏覽和代碼導航緊密集成起來。

我們來看一下改進之后,GitHub 的應用效果。

修復 bug

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

查找配置文件

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

這種查詢功能對于開發中的資源規劃與分配至關重要。

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

網友怎么看

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

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

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

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

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

標簽: