AI生成概念插画:浅黄色纸面上,一把木椅的部件分开展示榫卯连接,旁边放着组装完成的小椅子;象征让成品结构可以检查,并非工程图。

DAILY AI INTELLIGENCE

最新日报 历史日历 ↗

2026-11-02 · AI 日报

把质量依据留在成品里

6 条精选1 份学习材料资料截至 2026-11-02 08:04(北京时间)

EDITOR’S NOTE

本期导读

一项测试显示绿色,究竟确认了什么?今天几份材料让这个问题有了具体落点:数据库可能接受了请求,却没有保存应有的数据;代码审查可能复现了缺陷,却写出破坏既有行为的补丁;小应用也可能顺利生成,但仍未经历一次长期维护。把这些阶段分别说明,才能判断一个新工具真正替人完成了哪部分工作。

Jepsen 对 ParticleDB 的检查强调,测试首先要能抓住错误;OpenRouter 的教程则把复现、应用补丁和修改后验证之间的距离露了出来。结合此前对“通过”含义的观察,本期进一步追问:检查有没有可能失败,修复是否保护了原来有效的行为,以及谁能解释变化为何发生。这里有公开反例和作者小样本记录,也有尚未执行的验证建议,不能混成同一层证据。

沿着这条线,可以先读数据库与代码审查,再看框架生成成本的比较:它给出了清楚的小任务条件,也引出维护者的不同经验。两个方向另有新启发——tandem.cpp 把大模型推理拆到 CPU、显存与内存之间;Frank Calegari 则追问,证明更容易获得后,数学怎样奖励理解和问题选择。最后回访 HackerTube,看看公开数据怎样让用户提出新鲜度与摘要呈现的改进。

组合筛选

METHODS & SYSTEMS

技术进展

05
值得读AI 编程 / 评测与基准
追踪记录 ↗

Jepsen 检查 ParticleDB:测试通过之前,先确认它会失败

技术数据库事务差分测试测试有效性
可信度
65
重要性
82
新颖度
77

ParticleDB 把 SQL、键值与向量能力放进一个面向 AI 工作流的数据库,并提供兼容 PostgreSQL 的接口。Jepsen 受 Orkes 委托检查它,公开报告覆盖从 1.1.4 到 1.1.18.11.rc-22 的多个构建;由于未获得可测试的复制版本,这次是单节点检查。报告中的问题不能一概解释成分布式网络故障。

测试包括事务操作,以及把生成的 SQL 分别交给 ParticleDB 和 PostgreSQL 比较。发现差异后,再缩小输入,寻找更容易解释的失败案例。作者报告,正常运行、单个客户端的基本操作也出现约束和事务语义错误,已提交写入可能丢失。随机查询比较同样有局限:两种实现允许存在语义差异,而不断缩小一个轻微差异,也可能耗尽发现更严重问题的时间。

分析的另一重点是开发过程。文档提到形式化验证,但协作期间没有向 Jepsen 提供相应规格;一些宣称已修复的问题仍会出现,开发者也未能解释不少修补为何有效。作者因此建议检查测试是否真的能在功能缺失或损坏时失败,再看修复后是否通过,而非只积累通过记录。

版本边界需要留下:厂商称问题已在 1.1.19-rc.13 修复,Jepsen 明确没有测试该后续版本。报告支持对已测版本和测试流程的具体批评,不证明所有后续版本仍有同样缺陷,也没有通过对照实验确定这些错误都是 AI 编程造成的。

nikez96 · 原帖 / 原文

语境:在报告的 HN 讨论中自称 ParticleDB 团队成员;这是团队回应,非第三方验证。 · 读取时间:2026-11-02T00:08:22.195379+00:00

逐句忠实转述(非原文)

他表示团队已持续运行 Jepsen 工作负载,收窄支持的事务模式,并修复报告中的问题、扩大回归覆盖;据其自述,近期在提供隔离保证的受支持模式中没有再发现事务异常。他还提到引入 Agent 测试来探索边界情况。回应说明了团队声称采取的措施,但评论本身没有提供可由本期核验的完整运行记录。

crote · 原帖 / 原文

语境:回复团队回应,追问开发和审查流程的根因;属于外部质疑。 · 读取时间:2026-11-02T00:08:22.195379+00:00

逐句忠实转述(非原文)

他认为“增加单元测试”还没有回答为什么基本数据操作错误会进入发布版本。他追问架构、设计和审查过程怎样允许这些状态出现,希望团队公开反思流程。这一质疑把注意力从补了多少用例移向为何会漏检,但不能替代对新版本的实际测试。

编辑评读

一个兼容接口的承诺,最终要落实到用户能观察的行为。数据库接受了一条插入语句,不等于数据已经按约束保存;返回成功,也不等于稍后仍能读到。Jepsen 把这类承诺变成操作序列和反例,使读者能讨论究竟哪一种保证失效,而不是只看项目有没有测试目录。

测试本身也需要证据。若一个约束未实现时测试仍然通过,增加运行次数只会重复同一个盲点。可以先故意破坏一项约束,确认用例会报错,再恢复实现;这种变异检查不是完整正确性证明,却能排除一部分“只会亮绿灯”的测试。对修补还应要求说明触发条件、状态变化和防止复发的用例,避免把偶然不再复现误认成理解了根因。

付费委托并不自动使分析失效,也不让它天然中立;这里应检查公开反例、版本与方法是否可追溯。团队说已扩大测试,是值得继续追查的进展主张。下一步有意义的证据,是相应新版本、失败用例和运行记录之间的对应,而不是要求团队重复保证“我们很重视”。本期没有执行这些回归用例。

依据 1 · 依据 2 · 依据 3 · 依据 4

值得读Agent 系统 / AI 编程 / 评测与基准
追踪记录 ↗

把代码审查意见带进沙箱,仍要再检查补丁

技术沙箱复现补丁回归代码审查
可信度
65
重要性
76
新颖度
77

OpenRouter 的教程用一个 233 行的 Python 脚本演示代码审查:收集文件、差异和测试,交给模型;模型可以在托管 Linux 沙箱里运行短检查,再提交发现的问题和补丁。它试图解决的痛点很具体——一条说得像真的审查意见,未必能复现,更未必附带正确修复。

脚本区分已经确认与尚未确认的发现,也报告补丁是否成功应用。这里有一个容易漏掉的边界:沙箱中的复现针对原代码,补丁写入另一个临时工作副本。补丁“应用成功”只是文件修改成功,不表示修改后的代码已经再次通过测试。沙箱默认没有外网,缺少依赖时也可能无法复现;不能把这类受阻直接判为没有缺陷。

作者人为放入五个缺陷,给四种模型各跑三次。Sonnet 5.5 在三次中都修好五项,平均调用费约 0.0447 美元;这是这份玩具任务的记录。Haiku 有两次用错误的索引方式修补判断,反而破坏了字典调用者。DeepSeek 三次有一次到八轮上限仍未提交,另外两次完成;只统计完成轮次会掩盖这种失败。

教程的价值是展示如何留下复现与修改记录。五个植入缺陷不能代表真实仓库,也没有证明它在没有问题的变更上不会误报。本期阅读流程、代码相关段落和结果限制,没有调用模型、运行沙箱或复测这些补丁。

编辑评读

“找到错误”和“修好错误”应该是两个验收点。审查者可能正确指出身份比较有问题,却用只适合元组的方式修补,破坏原来允许的字典输入。要保护既有行为,补丁后的检查必须包括发现缺陷的反例,以及本来就应该成立的调用方式;只重跑一个新反例可能再次漏掉退化。

这也给此前关于干净变更误报的观察补上了一种工程入口。能够执行证据,比仅给置信度更便于核查;但执行过某条命令,并不自动表示检查覆盖了声称的行为。可以让每条意见指向具体输入、预期结果和实际结果,再分别保存原代码与补丁后结果。还要核对命令实际读取的文件位置,避免日志里虽有测试成功,运行的却仍是旧副本。随后加入本来正确的变更,统计错误建议是否会被执行、是否造成损害,才能接近审查的净收益。这是可继续做的比较,教程并未完成。

依据 1

值得读AI 编程 / 评测与基准
追踪记录 ↗

生成一次小应用,框架成本差在哪里

技术前端框架任务一致性测试生成成本
可信度
65
重要性
76
新颖度
77

给编程 Agent 同一份需求,换一个 JavaScript 框架,生成成本会差多少?Nolan Lawson 在 10 月 28 日的文章里做了一个范围很明确的测试:用 Opus 5.5 的高推理设置,分别以十二种框架生成一个可搜索、筛选的宝可梦展示应用,每种跑五次。文章今天因社区讨论再次受到关注,并非今天发布的新版本。

测试给 Agent 功能规格和一致性测试,以可访问性树检查交互,也就是检查界面向辅助技术提供的角色、名称与状态,尽量不要求各框架采用相同的页面内部结构。Lighthouse 的性能与可访问性检查没有预先告知 Agent。官方工具和技能可以使用,但“可以用”不表示每次真的用了。Angular 五次中有两次未形成可测成品;费用仍计算五次,代码和性能指标只能统计成功样本。

作者按 API 价格折算的中位成本,从 Hono 加 htmx 的 2.67 美元到 Angular 的 4.97 美元;这不是他使用订阅服务的逐次实际账单。大部分成功成品的 Lighthouse 分数接近满分,JavaScript 载荷、代码量和花费却不同。它说明同一个小任务的生成路径存在差异,尚不能回答长期维护哪个框架更便宜:这里没有持续加功能、多人接手或复杂应用状态的实验。

deepsun · 原帖 / 原文

语境:HN 原文讨论;质疑小型生成任务是否覆盖框架的长期价值。 · 读取时间:2026-11-02T00:07:49.061764+00:00

逐句忠实转述(非原文)

他认为,框架的重要作用是让一个长期项目在人员变化、功能增加后仍有约定可循。一个近似静态的小应用,难以表现跨模块依赖、复用和本地化等问题。因此,他质疑仅用这种任务评价框架是否划算,也追问有了 Agent 后哪些框架价值仍然成立。

robgibbons · 原帖 / 原文

语境:回复 deepsun;提出不同的机制解释,而非复测结果。 · 读取时间:2026-11-02T00:07:49.061764+00:00

逐句忠实转述(非原文)

他反问:一致的约定难道不能同样帮助 Agent?在后续回复里,他把框架理解成限制可选路径的工具:面对少数明确接口,可能比自由组合整套标准库更容易。这为维护性提出另一种解释,但没有证明哪一种框架在本测试之外更优。

incrudible · 原帖 / 原文

语境:同一讨论下的个人项目经历,未提供匹配对照数据。 · 读取时间:2026-11-02T00:07:49.061764+00:00

逐句忠实转述(非原文)

他尝试让 Agent 使用原生 JavaScript,起初顺利,项目变大后却感觉缺陷和混乱增加,后来回到 React。他看重的是较容易推理的状态转换和稳定接口,同时不喜欢频繁变化的外围生态:模型若以为自己知道旧 API,可能先写错,之后才去查文档。这是一种实际维护痛点,不能由此推出所有项目都应使用 React。

编辑评读

这份测试最有用的地方,是把“Agent 会不会用某框架”改成一个可比较的具体任务。模型熟悉度、查文档的路径、框架默认配置都可能进入成本。作者观察到某些运行反复查迁移指南,这提供了排查方向,但没有隔离变量,不能直接断言某份文档造成了全部差价。

选型时还需要明确要节省哪一种工作。一次生成少花几美元,与下一位维护者能否理解状态流转,是不同目标。框架约定可能增加初始代码,却减少后续修改的选择空间;反过来,简单内容页也可能根本不需要复杂框架。可迁移的方法是固定一个真实功能,再加入一次跨页面状态修改和一次陌生人接手,分别记录生成费、缺陷及理解时间。这是编辑建议,今天的测试并未覆盖这些阶段。

依据 1 · 依据 2 · 依据 3 · 依据 4 · 依据 5 · 依据 6 · 依据 7

值得读系统与效率 / 基础模型
追踪记录 ↗

tandem.cpp:让放不进显存的专家,分给 CPU 和 GPU 计算

技术MoE专家缓存CPU GPU协同内存带宽
可信度
65
重要性
76
新颖度
77

混合专家模型每生成一个 token,只会调用部分专家,但所有专家权重未必放得进显存。tandem.cpp 是针对 llama.cpp 的补丁:把大部分专家留在主机内存,显存中的空余空间用作专家缓存;缓存未命中时,部分工作交给 CPU 并行计算,另一部分通过 PCIe 传给 GPU,按测得的 CPU 和传输能力分配。

README 给出单用户、GSM8K 前二百题、短提示与最多 2048 个输出 token 的测量。在 i5-12400F、64 GB DDR4、RTX 4090 24 GB 的机器上,使用约 78 GiB 的 Qwen3.8 量化专家权重和相同草稿模型,贪心生成由 llama.cpp 的 29.8 提高到 97.3 token/秒。但同表中 Strata 的相应结果更快,不能把“约 3.3 倍”读成对所有引擎的领先。

收益也有清楚的失败条件。更大的 DeepSeek 配置需要从 SSD 读取,当前 CPU 路径不能接走这类缺页工作,在消费级机器上反而比基线慢。多个并发请求争用小缓存时,总收益也会降低。用于保存已读上下文注意力状态的 KV 缓存还会占用原本可给专家缓存的显存,所以短提示速度不能直接当成长任务吞吐。

作者另列数值分布与困惑度检查,称关闭默认优化可与基线完全对应,默认融合内核主要改变舍入;CPU、GPU 的分工又受运行时序影响,贪心输出不保证每次相同。它已公开实现和限制,但本期没有独立运行,Reddit 评论接口返回 403,也未取得可采用的外部同条件复测。

编辑评读

这里的新能力来自重新分配数据与计算的位置。若显存不足,单纯追求 GPU 峰值算力可能不解决问题:系统可能大部分时间在等权重经过 PCIe。让 CPU 消化一部分未命中专家,有机会与 GPU 重叠工作;但 CPU 内存带宽、模型是否装得进主存,以及缓存命中率会共同决定效果。SSD 例子说明,同一种调度在跨过容量边界后可能失去优势。

读者可以先估算自己的权重、KV 缓存和主存余量,再看作者对应硬件行,而不是从最快数字反推设备能力。若以后评测,应该同时记录首 token 延迟、稳定生成速度、上下文长度和任务质量,并固定草稿模型与量化格式。输出不逐字一致也不必然表示质量下降,却意味着单靠一次文本相等检查不足以说明数值和任务行为;这些比较在本期没有执行。

依据 1

值得读Agent 系统 / 检索与知识 / 多模态
追踪记录 ↗

HackerTube 回访:筛选路径更清楚,用户还想要新视频

技术信息筛选推荐语境摘要呈现
可信度
65
重要性
76
新颖度
62

昨日介绍的 HackerTube,是 Karpathy 用 Hacker News 历史推荐重新组织视频入口的个人项目。原文列出 6454 个视频、150 个主题,提供可导出的数据,用户状态保存在本地浏览器。今天值得补充的不是“又做了一个视频站”,而是作者说明了筛选路径,用户也指出了实际使用中的缺口。

面对关于处理海量评论的玩笑,Karpathy 在公开回复里澄清:先按 URL、正则规则和垃圾信息过滤缩小范围,剩余部分才交给 Sonnet。最终视频下面能看到保留下来的推荐评论。这让读者知道语言模型介入的是哪一步,而不是误以为所有历史评论都经过相同深度的模型阅读。

Peter Hraska 则说,他喜欢这个入口,却想发现刚上传的新视频,于是尝试从已出现的频道补充新上传内容,并把标题所问问题的答案或摘要直接放在列表中。他还指出,原站虽然已有摘要,却藏在观看页像简介的位置,自己起初没认出那是摘要。这是一个具体的交互痛点:信息已经生成,用户仍可能在决定是否点击之前用不上它。

本期使用固定程序取得的公开原帖与回复快照,保留原账号和父帖关系,没有观看视频,也没有实测 Hraska 的派生站。作者的筛选说明和用户的自述,分别支持对处理流程与阅读需求的理解,不能据此认定推荐质量已得到独立验证。

作者原文中的 HackerTube 列表界面:卡片展示缩略图、标题、频道与观看信息。结合 Hraska 的反馈,可以看出为什么把摘要放在点击前的选择位置值得尝试;截图本身不证明推荐质量或改版效果。本期未观看图中视频。Andrej Karpathy,原文界面截图;为讨论摘要位置作必要评述引用,保留原图与出处,未宣称获得另行授权。 · 原文界面截图 · 图片出处 ↗

X 观点 Andrej Karpathy · 原帖 / 原文

语境:回复 Eyad Nour 关于 Agent 阅读海量 HN 评论的玩笑;说明原项目过滤流程。 · 读取时间:2026-11-02T00:04:08.256451+00:00

回应原帖:Eyad Nour

逐句忠实转述(非原文)

他澄清,Claude 已先用网址、正则与去垃圾处理缩小候选,再通过 Workflow 把剩余部分交给 Sonnet;视频下方保留的评论可供查看。他觉得那些推荐语气友好且有帮助,这是作者的个人判断。

X 观点 Peter Hraska · 原帖 / 原文

语境:在 HackerTube 讨论中提出新视频与摘要位置需求,并介绍自己的尝试。 · 读取时间:2026-11-02T00:00:57.514812+00:00

回应原帖:Andrej Karpathy

逐句忠实转述(非原文)

他最想补的是全新上传的视频:沿历史数据中常出现的频道找新内容,再在网格列表里显示答案或摘要。他认为列表摘要有助于快速筛选;原站的摘要放在观看页,像普通说明,他一开始甚至没意识到那是摘要,因此询问是否可以更突出地呈现。

编辑评读

这次回访把“更好的推荐”拆成两个不同目标:从历史讨论中找到值得看的内容,以及及时发现喜欢的频道刚发布了什么。历史社区提及擅长前一种候选发现,却天然需要时间积累;补入新上传可以改善新鲜度,也会把尚未经社区讨论的内容带进来。两者并无必要混成一项质量分数。沿历史热门频道补新视频,仍不保证能发现新的创作者;内容新鲜与来源多样也要分开。

摘要放在哪里,则决定它是否真正减少试错点击。如果用户在列表中已能判断主题与答案,就可能更快排除不合适的视频;但过早给出摘要也可能遗漏论证过程。可迁移的做法是把来源、更新时间、摘要依据放在作出选择的位置,并允许继续看原始推荐语境。以后可以比较用户找到目标内容需要的步骤和判断错误,而非只看点击率;这些交互效果本期尚未测量。

依据 1 · 依据 2 · 依据 3

VOICES & EXPERIENCE

观点与经验

01
值得读评测与基准 / 推理能力
追踪记录 ↗

Frank Calegari:数学研究还需要选择问题、理解结果

技术数学理解问题选择研究评价
可信度
65
重要性
76
新颖度
77

这篇 11 月 1 日刊在陶哲轩博客上的客座文章,作者是数学家 Frank Calegari。他回应 AI 参与数学研究带来的焦虑,也承认错误论文、归属混乱和糟糕写作是真实问题。他的核心判断是:少数著名猜想标记了当下研究的边界,却不等于整个数学的终点;如同知道元素周期表,也不会让化学失去研究空间。

他用有限单群分类说明,解决一个长期问题之后,还会出现对结构、联系和成因的新追问。工具若降低跨领域背景知识的准备成本,研究者可以尝试更宽、更有野心的问题。但这种机会需要人真正理解所获得的证明,知道它为何重要,能从中提出下一步;仅有流畅的数学表达并不够。

由此,他把“做出贡献”从最先提供某一步证明,扩展到选对问题、消化完整结果、建立联系和发展方向。他主张评价研究时假定 AI 辅助已经存在,降低单纯论文数量和抢先发表的权重;招聘可以通过深入交流了解候选人的理解,期刊更重视解释和联系,研讨会也可容纳尚未解答的大问题。

这些是关于学科目标与制度的规范性主张,不是对 AI 数学可靠性的实验结论。原文的乐观并非“理解已经不重要”,恰好相反:当证明步骤更容易获得时,判断什么值得研究、理解结果及其后果会更加重要。

joe_the_user · 原帖 / 原文

语境:HN 对客座文章的讨论;谈职业竞争,不是就业统计研究。 · 读取时间:2026-11-02T00:12:26.410763+00:00

逐句忠实转述(非原文)

他担心,擅长解决特定问题的研究者不能只靠一句“转向解释和搭建理论”就完成转型。学术职位本来有限,他们还要和长期训练这些能力的学生、博士后竞争。因此,新方向有价值,并不意味着每一个原有研究者都会自然得到新机会。

编辑评读

这篇文章值得保留的追问是:生产一种结果的成本下降以后,原来用来分配信用的指标是否仍在奖励真正想要的工作。论文数量容易计数,理解深度和问题选择较难判断;若继续只奖励前者,工具可能放大抢题、堆积和解释不足,而未自动带来更好的研究。这个机制也适用于代码审查:评论多不等于帮助维护者作出了更好的修改。

但把评价改成“理解与品位”,也不能省掉具体方法。一次口头交流可能受表达风格、导师资源和面试者偏好影响。较可操作的尝试,是请研究者解释一个证明的关键依赖、改变某个假设会怎样,再提出一个由此产生的问题,并保存可讨论的理由。这仍只是评价设计建议,需要检验它能否减少误判,不能把新的难测概念变成另一个口号。

HN 中的职业竞争担忧提醒我们,研究目标转变与个人顺利转型之间还有距离。即使广泛理解和理论组织变得更重要,也不保证原本按解题成果训练的人立即拥有机会。因此文章的机会判断和制度实施成本应一起读;没有必要为了接受新工具,先假定所有参与者面对相同的时间、职位和学习资源。

依据 1 · 依据 2 · 依据 3

LEARN BY DOING

技能学习

每天 1–2 份实践材料

博客 · 项目实践 · OpenRouter

沿一条审查意见追踪:发现、复现、修补、回归

技术沙箱复现补丁回归

教程把审查过程拆成可见步骤;Haiku 的修补错误适合练习检查原有行为是否被保留。

能读简单 Python 和 diff,知道字典与元组的访问方式;先阅读不需要账户或运行沙箱。 · 编辑建议约25分钟读流程、结果表及限制,再决定是否搭建;不是作者测得的学习时间。

动手试试:编辑建议:在纸上画出一条缺陷的证据链,分别标记原代码在哪执行、补丁写到哪里、哪一步仍需重新测试;另列一个本来正确的输入,说明修补后应保持什么。只有以后实际运行,才填写观察结果。

CONNECT THE DOTS

把几件事放在一起看

编辑观察
追踪记录 ↗01

让“通过”指向一件可解释的事

此前的观察把“配置被读取”“任务结束”和“目标行为正确”分开:它们都可能在界面上显示成功,却没有承诺同一件事。今天的新增材料让这个区分再向前一步。Jepsen 的反例不仅问数据库有没有测试,还问测试能不能在基本功能错误时失败;OpenRouter 的教程则展示,定位一个真缺陷和交付一个好补丁之间,仍可能发生新的损害。

两者共有的机制,是检查必须对某个具体错误敏感。若约束未实现时测试照样通过,成功记录不会随着实现变好而变得更有意义。若补丁只满足新反例,却损坏原本支持的输入,复现记录也不能证明修改值得接受。因此,一份有用的验收依据至少要说清输入条件、期待行为、实际观察,以及修改前后哪些行为应保持不变。

这并不要求每个小工具先建立庞大证明体系。可以从一个最常见的承诺开始:数据提交后应仍能读到,审查修复后原有调用者应继续工作。先写一个能打破承诺的例子,再确认正常例子依然成立;对于难以直接给出标准答案的任务,可以比较两个实现,或者改变输入而检查应保持的关系。但差分测试也会受到合法语义差异影响,检查方式仍需要解释。

框架测试补充了另一层:即便所有功能检查通过,质量目标仍未必完整。小应用一次生成的费用,不能替代持续修改的理解成本。框架的约定可能帮助人和 Agent 缩小选择范围,也可能给简单页面增加负担。这里最该改变的判断,是停止寻找一个能包办选型的单项分数,转而把分数对应的任务阶段写清楚。

可迁移到日常工作的做法,是让交付同时携带一小份可检查说明:做了什么、哪一个例子曾失败、修改后怎样变化,以及还有什么没有检查。它的价值在于让下一位使用者少猜测,而不是让报告显得更正式。若随后要比较 AI 是否省时,就应把写检查、解释差异和处理退化的时间也算进去;本期材料没有共同的人时对照,不能先宣称这种做法已经提高总效率。

同一次通过也可能来自较简单任务、较窄输入或更多人工准备;没有匹配条件,不能把收益全部归因于模型或检查设计。

跟踪可公开复跑的失败用例、补丁后保真检查和接手成本,尤其关注检查能否在故意破坏功能时报警。

相关条目:Jepsen 检查 ParticleDB:测试通过之前,先确认它会失败 / 把代码审查意见带进沙箱,仍要再检查补丁 / 生成一次小应用,框架成本差在哪里

来源 1 · 来源 2 · 来源 3