谷歌的代码搜索工具部分遵循了一键回答下一个关于代码的问题的原则。诸如这个符号在哪里定义的、它在哪里使用、如何包含它、它是什么时候加入代码库的,甚至像它消耗了多少CPU周期这样的问题,都可以通过一两次点击找到答案。
与集成开发环境IDE和代码编辑器相比,代码搜索针对大规模阅读、理解和探索代码的场景进行了优化。它在很大程度上依赖于基于云的后端来搜索内容和解析交叉引用。
在查看单个文件时,大多数标记都是可以点击的,让用户快速导航到相关信息。一个函数调用将会被链接到它的函数定义,一个导入的文件名将会被链接到实际的源文件,一个评论中的缺陷ID将会被链接到相应的缺陷报告。
点击符号名称会打开一个面板,上面有该符号被使用的所有地方。将鼠标停在一个函数的局部变量上,将高亮显示该变量在实现中所有出现的位置。
代码搜索还可以显示文件的历史,可以看到文件的旧版本、哪些变更影响了这个文件、谁编写了这些变更、跳转到这些变更,还可以比较文件的不同版本。
使用代码搜索可以找到代码库中某一特定信息存在于何处,例如,一个函数定义或配置、一个API的所有使用或调用、某个特定文件在版本库中的位置。
使用代码搜索可以找到代码库中的特定部分是做什么的,以及别人是如何使用这部分代码的,还有为什么代码与预期行为不同。
代码搜索从一个grep工具的原生替代品发展成为一个提高开发者生产力的核心工具。理解代码是开发和维护代码的关键,投资于理解代码将产生可能难以衡量但却实实在在的红利。