<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>单元测试 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《Thorsten Ball：我对软件开发未来的16条判断》</title><link>https://channel.meo-ai.com/posts/721</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/721</guid><pubDate>Fri, 23 Oct 2026 01:09:56 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Thorsten Ball：我对软件开发未来的16条判断》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B&quot; title=&quot;#软件工程&quot;&gt;#软件工程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI%E7%BC%96%E7%A8%8B&quot; title=&quot;#AI编程&quot;&gt;#AI编程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5&quot; title=&quot;#代码审查&quot;&gt;#代码审查&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95&quot; title=&quot;#单元测试&quot;&gt;#单元测试&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%BB%88%E7%AB%AF%E5%B7%A5%E5%85%B7&quot; title=&quot;#终端工具&quot;&gt;#终端工具&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Token%E8%AE%A1%E7%AE%97%E8%8C%83%E5%BC%8F&quot; title=&quot;#Token计算范式&quot;&gt;#Token计算范式&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E6%BA%90%E7%94%9F%E6%80%81&quot; title=&quot;#开源生态&quot;&gt;#开源生态&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%9C%AA%E6%9D%A5&quot; title=&quot;#软件开发未来&quot;&gt;#软件开发未来&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ThorstenBall&quot; title=&quot;#ThorstenBall&quot;&gt;#ThorstenBall&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;2026年9月19日，知名开发者、《Writing An Interpreter In Go》作者、现供职于 Sourcegraph/Amp 的 Thorsten Ball 在 X 发布长文，抛出 16 条关于软件开发未来的判断。核心观点是：当 AI 写代码的可靠性足够高时，为人类防错而设计的整套工程实践（代码审查、&lt;mark class=&quot;highlight&quot;&gt;单元测试&lt;/mark&gt;、终端、命令行工具）都会逐渐失去必要性，工程师的价值将从&quot;写代码的手艺&quot;迁移到&quot;理解业务、判断取舍、拿到反馈&quot;上，而这一切需要一代人的时间完成。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. 代码审查已死——人类不会再逐行 review 模型产出的代码，只会审查&quot;系统与其组合方式&quot;。&lt;br /&gt;2. 单元测试可能会消失——他让模型写 900 行 Arduino C 代码零错误一次通过，&quot;摔不了跤就不需要护膝&quot;。&lt;br /&gt;3. 写代码这门手艺会消失，但&quot;造软件&quot;（解决业务问题、判断何时上线、获取反馈）会比以往更重要。&lt;br /&gt;4. 大多数 bug 将不再是代码 bug，而是&quot;你需求提错了&quot;的 bug。&lt;br /&gt;5. 终端已死——Shell、编辑器、CLI 工具会被 token 冲刷，命令行知识将像 Perl 一行流一样变成&quot;古老技艺&quot;。&lt;br /&gt;6. Token 是新的计算范式，我们正在进入&quot;后二进制时代&quot;，一切都会在它之上被重构。&lt;br /&gt;7. PM/设计/工程的铁三角和 Agile、Scrum 都会瓦解，只做&quot;人肉代理&quot;的工程师将不再有价值。&lt;br /&gt;8. 大小公司的工程差距会拉大——小团队比学大厂做法的初创公司跑得更快。&lt;br /&gt;9. &quot;好代码&quot;的标准（人类易读易维护）建立在人类要改代码的前提上，这个前提正在崩塌。&lt;br /&gt;10. 现有形式的开源不再合理——&quot;众眼监虫&quot;依然成立，但现在有了&quot;人工眼睛&quot;。&lt;br /&gt;11. 拿不到足够 token 的人会被排除在软件生产之外，token 是新的生产力门槛。&lt;br /&gt;12. 便宜模型未必有人用——更聪明的模型犯错少、轮次少，你未必愿意忍受它多错几次。&lt;br /&gt;13. 模型快到一定程度后，UI 会被实时生成，菜单、设置页、仪表盘这些&quot;面向人类的 API&quot;会大幅减少。&lt;br /&gt;14. 这场变革不会一夜发生——新旧范式更替需要一代人的时间，但反问是：&quot;10年后还有写代码的工作，可你想要那份工作吗？&quot;&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://x.com/thorstenball/status/2101305394190557466&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://x.com/thorstenball/status/2101305394190557466&quot;&gt;https://x.com/thorstenball/status/2101305394190557466&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://x.com/thorstenball/status/2101305394190557466&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Most predictions I see are still way too conservative.Here&apos;s mine&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;X (formerly Twitter)&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Thorsten Ball (@thorstenball) on X&quot; src=&quot;/static/https://cdn4.telesco.pe/file/Fz4kqtIOpFVZ09G5TEoSk5-tpwjDSjDESHW055897s39vYKqP2Rtlsk359JqflW_B1jJAYc7oA7hnv-zvzeLUqa0oCgHPupOHnLAl15cx_EupZUY36NwUgy2aFQpTJxS1zBPIZPJqgIUorHSXXhJUsSz5l9gkpG270kM_z36wZFJAW0Mqqszt8pt0zAWvBr7V0e-PVgj5TYGBVX-5FxR5AkazIdfttzE78prjKGHRzqGaRn5M4aS2iA17-V7O5mulQwh4M3ZmADaMwB03mOcTqa1dKKFIyxWvLmmKP4j6EgpqodADWgrPBgFtXMPdibkhC6vsV44yQEIdylehTLm7Q.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Thorsten Ball (@thorstenball) on X&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Most predictions I see are still way too conservative.&lt;br /&gt;&lt;br /&gt;Here&apos;s mine&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>《Vitest 5.0 正式发布》</title><link>https://channel.meo-ai.com/posts/704</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/704</guid><pubDate>Thu, 10 Sep 2026 23:19:53 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《Vitest 5.0 正式发布》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23JavaScript&quot; title=&quot;#JavaScript&quot;&gt;#JavaScript&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Vitest&quot; title=&quot;#Vitest&quot;&gt;#Vitest&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8B%E8%AF%95%E6%A1%86%E6%9E%B6&quot; title=&quot;#测试框架&quot;&gt;#测试框架&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95&quot; title=&quot;#单元测试&quot;&gt;#单元测试&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96&quot; title=&quot;#性能优化&quot;&gt;#性能优化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23BrowserMode&quot; title=&quot;#BrowserMode&quot;&gt;#BrowserMode&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23MockAPI&quot; title=&quot;#MockAPI&quot;&gt;#MockAPI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95&quot; title=&quot;#基准测试&quot;&gt;#基准测试&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%AD%E8%A8%80%E6%94%B9%E8%BF%9B&quot; title=&quot;#断言改进&quot;&gt;#断言改进&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E4%BB%A3%E7%A0%81%E8%A6%86%E7%9B%96%E7%8E%87&quot; title=&quot;#代码覆盖率&quot;&gt;#代码覆盖率&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;Vitest 5.0 于 2026 年 9 月 3 日正式发布，本次大版本以性能优化为核心，同时带来 Trace View 追踪视图、嵌套项目配置、&lt;code&gt;vi.when&lt;/code&gt; 条件 Mock、基准测试重写等多项重要更新，并默认启用更严格的断言与 &lt;code&gt;clearMocks&lt;/code&gt; 行为，要求 Vite &amp;gt;= 6.4.0 和 Node.js &amp;gt;= 22.12.0。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;性能大幅提升&lt;/b&gt;：通过共享 Vite 服务器、稳定的文件系统模块缓存、减少主进程与 worker 往返、加速 vm 池与浏览器模式等优化，整体测试速度提升 8%–53%，大型项目（1,280 模块）运行时间从 7.24s 降至 5.83s。&lt;br /&gt;&lt;br /&gt;2. **新增 &lt;code&gt;vitest doctor&lt;/code&gt; 诊断工具**：自动运行替代配置并推荐更快的选项，同时默认输出性能提示，帮助用户发现配置瓶颈。&lt;br /&gt;&lt;b&gt;Browser Mode 内置 Trace View&lt;/b&gt;ew**：开启 &lt;code&gt;browser.traceView&lt;/code&gt; 后，可记录交互、断言和 DOM 快照，支持逐步回放测试过程，便于调试 CI 失败。&lt;br /&gt;&lt;b&gt;嵌套项目与配置继承&lt;/b&gt;继承**：内联项目默认继承根配置（无需 &lt;code&gt;extends: true&lt;/code&gt;），被引用的配置文件可声明自己的 &lt;code&gt;projects&lt;/code&gt;，支持多级嵌套结构。&lt;br /&gt;&lt;br /&gt;5. **新 API &lt;code&gt;vi.when&lt;/code&gt;**：支持按参数定义不同的 Mock 返回值，支持深度相等和 &lt;code&gt;expect.any()&lt;/code&gt; 等非对称匹配器，并可限制调用&lt;b&gt;基准测试 API 重写&lt;/b&gt;API 重写**：&lt;code&gt;bench&lt;/code&gt; 变为测试上下文 fixture，可在常规 &lt;code&gt;test()&lt;/code&gt; 中使用，支持 fixtures、生命周期钩子、重试和断言，结果可存储并与基线&lt;b&gt;定位器错误显示 ARIA 树&lt;/b&gt;ARIA 树**：浏览器模式下定位失败时，同时打印 ARIA 快照和 HTML，帮助快速理解 &lt;code&gt;getByRole&lt;/code&gt; 等查询的匹配逻辑；定位器默认启用严格模式。&lt;br /&gt;&lt;br /&gt;8. **Mock &lt;code&gt;Temporal&lt;/code&gt; API**：假计时器现在同时模拟 &lt;code&gt;Temporal&lt;/code&gt; 和 &lt;code&gt;Date&lt;/code&gt;，适用于 &lt;code&gt;vi.useFakeTimers()&lt;/code&gt; 和 &lt;code&gt;vi.setSystemTime()&lt;/code&gt;。&lt;br /&gt;&lt;br /&gt;9. **更严格的断言行为**：未 await 的异步断言（&lt;code&gt;resolves&lt;/code&gt;、&lt;code&gt;rejects&lt;/code&gt; 等）现在会导致测试失败；&lt;code&gt;expect.poll&lt;/code&gt; 超时后拒绝并支持 &lt;code&gt;AbortSignal&lt;/code&gt; 取消。&lt;br /&gt;&lt;br /&gt;10. **&lt;code&gt;clearMocks&lt;/code&gt; 默认启用**：每个测试前自动清除 Mock 调用历史，避免测试间&lt;b&gt;报告器统一输出目录&lt;/b&gt;。&lt;br /&gt;&lt;br /&gt;11. **报告器统一输出目录**：所有报告器输出集中到 &lt;code&gt;.vitest&lt;/code&gt; 目录，减少 &lt;code&gt;.gitignore&lt;/code&gt; 配置；HTML 报告器支持 &lt;code&gt;singleFile&lt;/code&gt; 选项生成单文件报告。&lt;br /&gt;&lt;br /&gt;12. **其他实用改进**：新增 &lt;code&gt;--repeats&lt;/code&gt; 选项重复运行测试以排查 flaky 测试；&lt;code&gt;injectCjsGlobals&lt;/code&gt; 可禁用 CJS 全局注入；覆盖率工具切换到维护中的 &lt;code&gt;@vitest/istanbuljs&lt;/code&gt; 包。&lt;br /&gt;&lt;br /&gt;13. **破坏性变更**：要求 Vite &amp;gt;= 6.4.0 和 Node.js &amp;gt;= 22.12.0，升级前建议查阅迁移指南。&lt;br /&gt;&lt;br /&gt;URL：&lt;br /&gt;&lt;a href=&quot;https://vitest.dev/blog/vitest-5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://vitest.dev/blog/vitest-5&quot;&gt;https://vitest.dev/blog/vitest-5&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://vitest.dev/blog/vitest-5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Vitest 5.0 Release Announcement&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;vitest.dev&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Announcing Vitest 5.0&quot; src=&quot;/static/https://cdn4.telesco.pe/file/pVrT7Df8_yhALcjdMSbUXlZgBUnkLka7DoWlX0BhkZtBrRqSCZrphE1n9cwrXrwmFQ9nnTNX5oynSmNrAb2xH-ppzjn20jcze0Kp2GlUi59p1y25xNY62U72jnzS_5aOP6cLJASvUASy5ktk4AHU_wNqd0UVHjwvVIyIizEBdw9f2sgrruYRqN2YTeWz_Im1nBEOJUsi0BsGznnVx9_ce1llIGPkmPJ1caONhNlcFeZ-7-wqNB3Am6YwsU2TLz9lcs2nOH1RU4dQrwCVWvIw5uVxbyXrnem9JCUArwtunI_9LIC5h-nYxLBiIInNtQeercqg-0I_v_eyvWNu4aCh2g.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Announcing Vitest 5.0&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Vitest 5.0 Release Announcement&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>