写点什么

GitHub 全新代码搜索引擎正式上线,但用户对新产品“不买账”

  • 2023-05-13
    北京
  • 本文字数:1404 字

    阅读完需:约 5 分钟

GitHub 全新代码搜索引擎正式上线,但用户对新产品“不买账”

18 个月后,GitHub 终于宣布向所有用户开放全新的代码搜索引擎。


在软件开发的过程中,阅读和理解代码是一项基础工作。无论是实现新功能,还是查找 bug,开发人员首先要阅读和理解代码,这个时间甚至多于编写代码。如果能够像搜索引擎一样,快速找到开发需要的上下文代码,那么软件开发的效率将会大幅提升。

 

但是 GitHub 上可供搜索的代码浩如烟海,全球代码仓库已经超过 2 亿,并且这些代码不是静态的:它在不断变化,这就给代码搜索引擎带来了相当大的挑战。

 

上线 15 年来,GitHub 一直努力给大家提供一个好用的代码搜索引擎,但一直不能如愿。因为之前的代码搜索基于 Elasticsearch,但代码搜索与一般文本搜索有着很大的区别,毕竟代码是写给机器来理解的,需要利用代码之间的结构和相关性,并且还需要支持正则表达式进行搜索。

 

从 2020 年开始,GitHub 开始全力以赴构建自定义搜索引擎。这款代码搜索引擎被命名为 Blackbird,用 Rust 编写,它创建并增量维护一个由 Git blob 对象 ID 分片的代码搜索索引。增量的形式能节省大量存储空间,并保证了跨分片的均匀负载分布。同时支持对文档内容进行正则表达式搜索,还可以捕获额外的元数据,例如它还维护符号定义的索引。最终 Blackbird 满足了大家的性能目标:速度非常快,索引也非常紧凑,重量约为(去重)语料库大小的 1/3。

 

该代码搜索引擎于 2021 年底推出预览版,这周,GitHub 宣布其“普遍可用”。

 

除代码搜索引擎是全新的之外,GitHub 还推出了一个完全重新设计的搜索界面。新界面不仅提供建议与补全,还能对搜索结果进行智能分类。

 


另外,研发团队还重新设计了 GitHub 的代码视图,将搜索、浏览和代码导航紧密集成起来。

 


GitHub 全新的代码搜索正式上线后,有网友大赞其功能:“这是 5 年来最令人印象深刻的产品”,“很高兴能够在代码搜索中包含特殊字符!”

 

但不幸的是,也有不少用户给出了“不满意的”的反馈,要求有一种方法可以返回到旧版本。

 

CameronEnglish:“新的查看体验缓慢而糟糕。我并不真正关心新的代码搜索功能,因为我已经有了相关工具。视图更改极大地恶化了 Github 的体验。”

 

Shortnamesalex:“请给我们一个恢复到旧 UI 的选项。这个新 UI 太糟糕了。一切都感觉太局促但同时又太宽,而且代码字体令人眼花缭乱。”

 

还有网友说到:“我希望在编辑 Markdown 时看到对‘显示差异’功能的改进——以前,删除的内容是红色的,添加的内容是绿色的。现在这种差异却没有了。

 

但是这只是对新界面表达不满的其中几个,用户不断提出新问题:

 

 

可以说,GitHub 意识到了这些抱怨。“我们正在积极处理我们从社区收到的反馈,”公司发言人对外表示。“当我们构建新的代码搜索和代码视图时,我们优先考虑让开发人员能够快速搜索、导航和理解他们的代码,将关键信息置于上下文中,并最终提高他们的工作效率。这些优先事项仍然是我们的首要事项。”

 

参考链接:

 

https://github.blog/2023-05-08-github-code-search-is-generally-available/

https://github.com/orgs/community/discussions/54546#discussioncomment-5841984

https://www.theregister.com/2023/05/13/github_code_search_redesign_feedback/

 

2023-05-13 19:535059

评论

发布
暂无评论
发现更多内容

带你玩转NProgress进度条

海底烧烤店ai

前端 JavaScrip 9月月更

利用flexible.js和VSCode插件cssrem进行可伸缩布局方案

海底烧烤店ai

前端 JavaScrip 响应式网页 9月月更

计算机网络——编码与调制

StackOverflow

编程 计算机网络 9月月更

爆火小游戏《羊了个羊》,我偏不玩

图灵社区

游戏开发 游戏设计 游戏史

Java中的Request和Response详解

共饮一杯无

Request 9月月更 Response 请求与响应

Qt|实现简单的分割窗口

中国好公民st

qt 分割 9月月更

本地部署 VS 云服务

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

【云原生 | 从零开始学Docker】八丶Docker网络与部署redis集群

泡泡

Docker 云原生 9月月更

gopher成长之路(五): 2年前和2年后同一个项目

非晓为骁

个人成长

爆火小游戏《羊了个羊》,我偏不玩

图灵教育

游戏开发 游戏设计 游戏史

案例拆解:重要节日客情维护的礼品卡券应用

boshi

运营 礼品

上海理工大学 x WeLink智慧迎新,2022届新生体验闪电式入学

科技怪咖

面试突击84:Spring 有几种事务隔离级别?

王磊

Java 面试

【字符串函数内功修炼】strcpy + strcat + strcmp(一)

Albert Edison

C语言 9月月更 strcpy strcat strcmp

[SpringMVC]拦截器①(概述、入门案例)

十八岁讨厌编程

springmvc 后端开发 9月月更

架构之美第一篇-概述

马说IT

架构 企业架构 架构模式 架构三要素 架构发展历史

uni-app黑马优购项目学习记录(一)

海底烧烤店ai

小程序 uni-app JavaScrip 9月月更

一次线上事故,我顿悟了异步的精髓

勇哥java实战分享

数学家的这些迷惑行为,最后都成了神操作

图灵社区

数学 数学教育 数学家

[SpringMVC]拦截器②(拦截器参数、拦截器链配置)

十八岁讨厌编程

springmvc 后端开发 9月月更

力扣93 - 复原IP地址【回溯算法】

Fire_Shield

LeetCode 字符串 9月月更

三分钟了解什么是时序数据库

阿泽🧸

时序数据库 9月月更

Elasticsearch聚合的嵌套桶如何排序

程序员欣宸

9月月更

SaaS 的多版本销售该如何设计

产品海豚湾

产品经理 产品设计 SaaS B端产品 9月月更

2022-09-18:以下go语言代码输出什么?A:1;B:15;C:panic index out of range;D:doesn’t compile。 package main import

福大大架构师每日一题

golang 福大大 选择题

WeLink协作文档:办公协作再快一档

科技怪咖

数学家的这些迷惑行为,最后都成了神操作

图灵教育

数学 数学教育 数学家

主流开源消息队列对比与分析

穿过生命散发芬芳

消息中间件 9月月更

GitHub 全新代码搜索引擎正式上线,但用户对新产品“不买账”_语言 & 开发_Tina_InfoQ精选文章