GitHub宣布全新的代码搜索引擎已正式上线,并向所有用户开放使用。
在软件开发过程中,阅读和理解代码是一个基础任务。无论是实现新功能还是查找 bug,开发人员首先要花时间阅读和理解代码,这甚至需要比编写代码花费更多的时间。如果能像搜索引擎那样快速地找到所需的上下文代码,那么软件开发的效率将会大大提高。
作为全球最大的源代码托管服务平台,GitHub在2021年发布了代码搜索引擎Code Search的预览版,并对其进行了一系列的优化修改。最近,在今年2月,GitHub公布了Code Search的技术细节。现在,GitHub宣布其所有用户可以使用全新的代码搜索引擎和代码视图,目的在于让开发人员能够快速地搜索、导航和理解代码,并最终提高工作效率。
具体来说,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 代码搜索需要开发者们自己尝试一下,才知道好不好用。
参考链接:https://github.blog/2023-05-08-github-code-search-is-generally-available/