在軟體開發的過程中,閱讀和理解程式碼是一項基礎工作。無論是實現新功能,還是尋找 bug,開發人員首先要閱讀和理解程式碼,這個時間甚至多於編寫程式碼。如果能夠像搜尋引擎一樣,快速找到開發所需的上下文程式碼,那麼軟體開發的效率將會大幅提升。
作為全球最大的原始碼託管服務平台,2021 年GitHub 發布程式碼搜尋引擎Code Search 預覽版,之後GitHub 又對Code Search 進行了一系列的最佳化修改,並在今年2 月公佈了技術細節。
現在,GitHub 宣布所有使用者都可以使用全新的程式碼搜尋(code search)引擎和程式碼視圖(code view),旨在讓開發人員能夠快速搜尋、導航和理解程式碼,最終提高工作效率。
具體來說,GitHub 推出了一個完全重新設計的搜尋介面。新介面不僅提供建議與補全,還能對搜尋結果進行智慧分類。
這基於GitHub 從頭開始建立的全新程式碼搜尋引擎,該引擎的特點是速度更快(大約是舊程式碼搜尋速度的兩倍),功能更強大(支援子字串(substring)查詢、正規表示式搜尋和符號搜尋),並具備一定的程式碼理解能力,能將最相關的結果放在首位。
此外,研發團隊也重新設計了 GitHub 的程式碼視圖,將搜尋、瀏覽和程式碼導航緊密整合。
我們來看看改進之後,GitHub 的應用效果。
修正 bug
#修復 bug 是軟體開發中最常遇到的工作情況之一。在修復之前,開發者們首先要找到 bug 在哪裡。一個大型軟體或專案通常具有多個系統或存儲,如果沒有程式碼搜索,開發者就必須克隆一堆儲存庫並使用 grep 遍歷它們。現在藉助GitHub 的程式碼搜尋功能,開發者可以在大量程式碼中進行快速尋找:
尋找設定檔
在實際開發中,專案配置往往是硬性限制條件。 GitHub 現在為開發者提供尋找設定檔的功能。例如,在程式碼中搜尋包含「記憶體(memory)」一詞的YAML 設定文件,就能查看一些記憶體佔用情況:
##這種查詢功能對於開發中的資源規劃與分配至關重要。
此外,GitHub 也制定了一些避免安全漏洞的規則,例如禁止使用 dangerouslySetInnerHTML 將危險的字串注入 DOM。
GitHub 全新的程式碼搜尋正式上線後,有網友大讚其功能,稱這是5 年來最令人印象深刻的產品,優秀到可與ChatGPT 媲美。
也有人表示 GitHub 的程式碼搜尋功能比 Copilot 或任何大型語言模型(LLM)都有用得多。
但也有一些網友表示,以前的GitHub 搜尋效果很差,更多的時候他們習慣於使用git -grep。
看來,全新的 GitHub 程式碼搜尋需要開發者們自己嘗試一下,才知道好不好用。
以上是正式上線,GitHub向所有用戶開放全新程式碼搜尋引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!