加载失败
这篇帖子讨论的是 Redis(一个内存型数据结构服务器)新增 array 和 regex 能力的开发过程,作者是 Redis 原作者 Salvatore Sanfilippo(Antirez)。文章里提到,这套实现大约用了四个月,借助 LLM(大语言模型)让同样时间内完成了更多重写、测试、文档和 AOF/RDB(Redis 两种持久化格式)集成工作,并引入了 TRE(一个 regex library)来做 ARGREP 之类的匹配功能。评论区则把它放进更大的 AI 编程语境里,讨论 spec-driven development、adversarial review、以及 AI 到底是在帮人放大能力还是在制造 cognitive debt。另一个背景线索是 Redis 长期偏单人驱动、近年治理和许可变化引发的社区贡献争议,以及它和 Postgres(关系型数据库)那种增量式、邮件列表式审查流程的对比。
评论者反复强调,这篇文章的作者是 Redis 的原作者之一,属于极少数能把 C 写得非常干净的人,所以“四个月配合 LLM”的结果不能直接外推到普通开发者。有人明确警告,这不是给任何平均水平的 CEO 下命令,让团队全面切换到 Claude Code 或 Codex 的许可证。更准确的理解是:LLM 在强工程师手里会放大能力,但它展示的是同一时间内做了更多工作,而不是凭空出现 10x 神话。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]
一条很长的分支描述了自己的 AI 辅助工作流:先让模型写高层 spec,再让另一个模型挑 bug、找缺口、补遗漏,然后把批评结果回灌回去,形成反复对抗式迭代。接着再用 AI 生成计划、测试用例和实现草案,并在代码落地后继续让其他模型做 review。大家普遍认为最大的收益往往出现在设计、文档、测试和把脑子里的模糊想法说清楚这几个阶段,而不是简单的手写代码加速;同时也有人提醒,如果前期 spec 没有认真读,后面会积累 cognitive debt。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12] [来源13] [来源14] [来源15]
一些评论先从 PR 体量下手:一开始看起来像 22,000 行级别的审查噩梦,但随后澄清核心逻辑其实大约 5,000 行,其余大多是测试、TRE 代码和持久化 glue。另一派则认为,对一个几乎完全由单人主导的 Redis 功能来说,把全部上下文放在一个 PR 里反而更容易审,尤其是代码结构比较扁平,主要就是数据结构实现和 command 层。也有人指出,专业 reviewer 本来就是带着上下文吃这碗饭的,所以问题不只是行数,而是如何在几个月的设计之后仍然给出有价值的反馈。讨论里还顺带提到,Redis 近年的治理和许可变化让社区贡献变少,而 Postgres 那种邮件列表式、分阶段、增量 review 的流程更像真正的社区协作。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]
很多人把 AI 形容成会 rubber-duck 的协作者:它能帮忙翻译需求、补 boilerplate、写邮件式说明,甚至在你被会议和打断切碎时帮你重新进入状态。评论也一致强调,人还是必须读代码、确认测试和把关边界,否则 AI 很容易漏掉 polish。另有讨论专门纠正 vibe coding 的滥用:原始含义是根本不看代码地靠感觉写,而这里讨论的其实是非常克制、强审查的 AI 辅助开发;也有人半认真半调侃地要求 LLM-free fork,但很快被认为不够建设性。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]
技术争论集中在:既然 Redis 已经有 ZSET、Lua 和其他原语,为什么还要为 array 和 regex 再开新的 API surface。支持者的回答是,ZSET 虽然语义上能凑合,但底层 skiplist + array 对稠密数组太浪费,而真正的 array 才能让 range query、ring buffer 和紧凑存储更自然。regex 部分则被解释为从文件 grep 场景自然延伸出来的 ARGREP,作者还专门引入 TRE 并讨论了 locale 相关的边界,比如带重音字符在 nocase 下未必如直觉那样匹配。与此同时,也有人举出温度采集等现成场景,认为 array 比用 Hashes 更贴切。
[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11]
spec-driven development: 先写规格/设计,再让 AI 按规格生成、修改和验证代码的做法。
vibe coding: 不认真看代码、主要凭感觉让 AI 生成软件的做法;这里被拿来和严肃的 AI 辅助开发区分。
Automatic Programming/Coding: 从高层描述自动生成代码的思路,讨论里用来概括更广义的 AI 编程。
TRE: 一个 regex library,Redis 用它来实现 regex 匹配功能。
AOF/RDB: Redis 的两种持久化机制:AOF 是追加日志,RDB 是快照文件。
ZSET: Redis 的 sorted set 数据类型,按 score 排序,常用于范围查询。