Hacker News 中文摘要

RSS订阅

无法提交PR,于是我入职并亲自修复了它 -- I couldn't submit a PR, so I got hired and fixed it myself

文章摘要

Nicholas Khami作为Trieve的创始人,发现Mintlify的搜索功能存在竞态问题,导致搜索结果不准确。尽管他曾在Slack上提出此问题,但未得到解决。加入Mintlify团队后,他通过添加AbortController修复了这一问题,确保搜索结果始终与用户当前输入的内容相关。

文章总结

标题:无法提交PR,于是我加入公司自己修复了问题

2025年7月30日,Nicholas Khami

一年多以来,我一直被Mintlify上的一个搜索问题困扰,这个问题导致了竞态条件和混乱的搜索结果。有趣的是,我正是Trieve公司的创始人,这家公司为Mintlify的30,000多个文档站点提供搜索服务,然而他们的去抖动搜索查询在用户输入时并未被中止。这种竞态条件使得搜索结果有时显得质量低下,因为系统会返回用户输入前几个字符时的查询结果。

作为提供搜索服务的公司创始人,每次用户遇到这些混乱的结果时,我都觉得这对Trieve的形象是一种负面影响。

修复过程

现在,我加入了Mintlify团队,终于有机会修复这个问题。我在去抖动搜索函数中添加了AbortController,这样当新的查询发起时,之前的查询就会被中止。这意味着搜索结果始终与用户当前输入的内容相关。

能够最终修复困扰自己的问题,有一种深深的满足感。这让我想起了George Hotz在2022年加入Twitter的那一周,他雄心勃勃地计划修复Twitter搜索,虽然最终被复杂性所挫败,但在戏剧性退出前,他还是成功修复了一个有用的登录弹窗问题。这是典型的黑客自负与现实碰撞,但最终还是有所成就。

我一直钦佩那些既是黑客又是企业家的工程师——他们看到问题就会去解决。能够在这里做类似的事情(虽然没有戏剧性的退出),感觉像是朝着这种直接处理问题的职业方向迈出了一小步。

开源的力量

我倾向于尽可能使用和构建开源软件,而这次的情况正是开源优势的一个绝佳例子。

在开源项目中,当你遇到一个bug或痛点时,你可以自己修复它。如果在我为搜索竞态条件困扰的那一年里,这是一个开源项目,我本可以提交一个包含AbortController修复的拉取请求,从而为自己(以及成千上万的其他用户)省去日常的烦恼。

然而,直到我加入公司并获得了代码库的访问权限,这个问题才得以解决。开源带来的即时赋权感是无可比拟的,尽管我理解许多公司出于商业原因选择不同的模式。

自我庆祝

如果Mintlify的搜索现在感觉更加清晰和响应迅速,那都是因为我!我修复了一个困扰我一年多的问题,能够为产品做出这样的小改进,感觉非常棒。

我迫不及待想要做更多。通过不断修复这些小问题,产品才能变得传奇。能够最终拥有修复那些困扰你的事物的力量,即使它们很小,也让人感到深深的满足。

尤其是当它们很小的时候。

评论总结

评论内容总结:

  1. 对代码和开源的认可

    • 评论2认为代码是最好的文档,开源是其最大的优势。
      • 引用:"Code is always the best documentation and the best thing about opensource."
  2. 对George Hotz事件的回忆与争议

    • 评论3提到George Hotz在Twitter的短暂经历,有人认为他夸下海口后迅速离开,但也有人认为他解决了登录弹窗问题。
      • 引用:"George Hotz boldly claimed that he could 'fix Twitter search' faster than those lazy Twitter devs, only to bail almost immediately."
  3. 对问题解决的看法

    • 评论6认为问题已解决,应该继续前进。
      • 引用:"Problem solved, so... time to move on?"
  4. 对公司雇佣行为的质疑

    • 评论7质疑公司派遣员工到其他公司进行短期工作是否合法。
      • 引用:"I wonder if it's legal for corporations to have employees that they send off to get hired at other companies..."
  5. 对用户体验的改进建议

    • 评论9提到在搜索功能中添加AbortController,确保搜索结果与用户当前输入相关。
      • 引用:"I added an AbortController to the debounced search function, so that it aborts any previous queries when a new one is made."
  6. 对文章内容的批评

    • 评论10指出文章未提及雇佣过程,认为这是整个事件中最重要的部分。
      • 引用:"The article says nothing about the hiring, which is kind of the most important part of the whole escapade."
  7. 对Google Maps功能的吐槽

    • 评论12抱怨Google Maps无法记住用户偏好的距离单位,认为这是荒谬的。
      • 引用:"I must have changed that back from miles once a fortnight since Google Maps launched 20 years ago."
  8. 对网站体验的反馈

    • 评论13提到在iOS + Firefox上访问时,网站会自动播放全屏视频并切换为暗模式。
      • 引用:"FYI this autoplays full screen video when I visit on iOS + Firefox."
  9. 对个人经历的分享

    • 评论14分享了自己在亚马逊被误封后通过内部联系解封的经历。
      • 引用:"After I got hired, I reached out to the guy in charge of the anti-fraud team at Amazon, and got unbanned."

总结:评论涉及对代码、开源、雇佣行为、用户体验、文章内容、网站体验等多个方面的讨论,既有对问题的解决和功能的改进建议,也有对个人经历的分享和对事件的回忆与争议。