Now vibe coding, so learning hammer FE ?
《CSS 与 JavaScript 动画性能之争》
标签:#前端 #CSS动画 #JavaScript动画 #WebAnimationsAPI #性能优化 #GSAP #Motion
总结:
本文通过交互式演示拆解了 CSS 与 JS 动画的性能差异真相:CSS Keyframes 和 Transitions 运行在独立线程,主线程阻塞时依然流畅;而传统 JS 动画(如 requestAnimationFrame 循环)与主线程争抢资源,容易卡顿。但 Motion 库通过底层调用 Web Animations API(WAAPI)绕过了这一限制,实现了与 CSS 同级别的流畅度。作者建议优先使用原生 CSS,遇到 CSS 无法覆盖的场景时选择 Motion 等 WAAPI 方案,而非直接上 GSAP 这类纯主线程库。
文章要点:
1. CSS 动画的核心优势不是"计算快",而是运行在独立线程,主线程再忙也不影响动画流畅度
2. 传统 JS 动画(requestAnimationFrame)每帧都在主线程计算,React 重渲染或 fetch 解析时容易掉帧
3. Motion 库(原 Framer Motion)底层使用 Web Animations API,能接入与 CSS 相同的底层动画引擎,主线程阻塞时照样丝滑
4. GSAP 功能极其强大,但坚持在主线程运行,是"能力换性能"的取舍,适合复杂序列动画而非简单过渡
5. 现代 CSS 已经很能打,View Transitions、linear()、Animation Timeline 等新 API 大幅减少了必须上 JS 的场景
6. 选型建议:能用 CSS 就不用库 → CSS 搞不定优先选 Motion/WAAPI → 只有复杂时间线控制才考虑 GSAP
URL:https://www.joshwcomeau.com/animation/css-vs-javascript/
标签:#前端 #CSS动画 #JavaScript动画 #WebAnimationsAPI #性能优化 #GSAP #Motion
总结:
本文通过交互式演示拆解了 CSS 与 JS 动画的性能差异真相:CSS Keyframes 和 Transitions 运行在独立线程,主线程阻塞时依然流畅;而传统 JS 动画(如 requestAnimationFrame 循环)与主线程争抢资源,容易卡顿。但 Motion 库通过底层调用 Web Animations API(WAAPI)绕过了这一限制,实现了与 CSS 同级别的流畅度。作者建议优先使用原生 CSS,遇到 CSS 无法覆盖的场景时选择 Motion 等 WAAPI 方案,而非直接上 GSAP 这类纯主线程库。
文章要点:
1. CSS 动画的核心优势不是"计算快",而是运行在独立线程,主线程再忙也不影响动画流畅度
2. 传统 JS 动画(requestAnimationFrame)每帧都在主线程计算,React 重渲染或 fetch 解析时容易掉帧
3. Motion 库(原 Framer Motion)底层使用 Web Animations API,能接入与 CSS 相同的底层动画引擎,主线程阻塞时照样丝滑
4. GSAP 功能极其强大,但坚持在主线程运行,是"能力换性能"的取舍,适合复杂序列动画而非简单过渡
5. 现代 CSS 已经很能打,View Transitions、linear()、Animation Timeline 等新 API 大幅减少了必须上 JS 的场景
6. 选型建议:能用 CSS 就不用库 → CSS 搞不定优先选 Motion/WAAPI → 只有复杂时间线控制才考虑 GSAP
URL:https://www.joshwcomeau.com/animation/css-vs-javascript/
《TanStack Router 与 Query 的最佳实践》
标签:#前端 #React #TanStackQuery #TanStackRouter #数据获取 #SSR
总结:
本文详解了 TanStack Router 与 TanStack Query 的集成方案,核心思路是将 Router 的 Loader 视为"预取触发器",让 Query 接管全局缓存。通过关闭 Router 内置缓存、在 Loader 中预取 Query、组件中使用 useSuspenseQuery 或 useQuery 的组合策略,实现数据尽早获取、避免请求瀑布,同时兼容 SSR 流式渲染。作者强调始终使用 Query Hooks 而非 useLoaderData 获取数据,以维持自动重取、缓存失效和垃圾回收的正常运作。
文章要点:
1. Router 自带缓存仅限单路由,Query 缓存全局可跨路由共享,更适合多路由共用数据场景
2. 在 Loader 中预取 Query 能让请求在组件渲染前甚至 JS 加载前就开始,配合 prefetch:'intent' 还能实现悬停预加载
3. 关闭 Router 缓存(defaultPreloadStaleTime: 0)避免与 Query 缓存冲突,让 Query 独掌缓存策略
4. 推荐用 useSuspenseQuery 配合 Router 的默认 Error/Pending 边界,组件只需专注"阳光路径"
5. Loader 中不 await 更灵活:useSuspenseQuery 实现阻塞加载,useQuery 实现延迟加载,由组件自主决定
6. SSR 场景下 useSuspenseQuery 更友好,支持流式渐进渲染;useQuery 需在 Loader 中 await 否则服务端无 markup
7. 切勿用 useLoaderData 替代 Query Hooks,否则会导致自动重取、失效刷新和垃圾回收全部失效
8. 将 Loader 视为"事件处理器"——只负责触发预取、不返回数据,是渐进优化性能的好心智模型
URL:https://tkdodo.eu/blog/tan-stack-router-and-query
标签:#前端 #React #TanStackQuery #TanStackRouter #数据获取 #SSR
总结:
本文详解了 TanStack Router 与 TanStack Query 的集成方案,核心思路是将 Router 的 Loader 视为"预取触发器",让 Query 接管全局缓存。通过关闭 Router 内置缓存、在 Loader 中预取 Query、组件中使用 useSuspenseQuery 或 useQuery 的组合策略,实现数据尽早获取、避免请求瀑布,同时兼容 SSR 流式渲染。作者强调始终使用 Query Hooks 而非 useLoaderData 获取数据,以维持自动重取、缓存失效和垃圾回收的正常运作。
文章要点:
1. Router 自带缓存仅限单路由,Query 缓存全局可跨路由共享,更适合多路由共用数据场景
2. 在 Loader 中预取 Query 能让请求在组件渲染前甚至 JS 加载前就开始,配合 prefetch:'intent' 还能实现悬停预加载
3. 关闭 Router 缓存(defaultPreloadStaleTime: 0)避免与 Query 缓存冲突,让 Query 独掌缓存策略
4. 推荐用 useSuspenseQuery 配合 Router 的默认 Error/Pending 边界,组件只需专注"阳光路径"
5. Loader 中不 await 更灵活:useSuspenseQuery 实现阻塞加载,useQuery 实现延迟加载,由组件自主决定
6. SSR 场景下 useSuspenseQuery 更友好,支持流式渐进渲染;useQuery 需在 Loader 中 await 否则服务端无 markup
7. 切勿用 useLoaderData 替代 Query Hooks,否则会导致自动重取、失效刷新和垃圾回收全部失效
8. 将 Loader 视为"事件处理器"——只负责触发预取、不返回数据,是渐进优化性能的好心智模型
URL:https://tkdodo.eu/blog/tan-stack-router-and-query
《AI辅助工程师正在倦怠,这真的没问题吗?》
标签:#软件工程 #AI辅助编程 #职业倦怠 #心理健康 #开发者体验 #生产力陷阱
总结:
文章揭示了AI辅助编程带来的隐性危机——AI倦怠。尽管AI让代码产出速度翻倍,但工程师们实际工作强度更高、成就感更低。文章通过"Ben和Alice"的认知负荷对比分析,指出AI将编程从"计划→ crafting→结果"的愉悦循环,变成了高强度审查和调试的消耗模式。同时探讨了失去代码库上下文、被动思考时间被挤压、虚假期望膨胀等日常 burnout 诱因,并提供了五条可落地的自救建议:认可自身价值、重构AI工作流、保留手工编码时间、严守工作边界、探索新兴趣领域。
文章要点:
1. AI让产出翻倍,却让工作强度翻倍——Alice用2小时完成Ben 4小时的活,但认知负荷极高且停不下来,最终4小时内做了2倍高强度工作,成就感反而更低
2. 编程的快乐循环被打破了——以前"计划→写代码→看到结果"的过程很治愈,现在变成"计划→直接看AI生成的结果",跳过了最享受的crafting环节,只剩下累人的审查工作
3. 你的代码库正在"离开你"——AI代理帮你记住了架构和边界情况,你不再需要在脑中维护整个系统,久而久之直觉判断力下降, supervising一个自己不懂的系统超级累
4. 被动思考时间被AI偷走了——以前洗澡、散步时大脑后台会默默解题,现在跟AI几分钟来回就"搞定"了,但往往是次优解,后面还要返工
5. 虚假期望是个陷阱——AI初期进展顺利,客户/老板把冲刺速度当成基线,等瓶颈出现时你反而要拼命维持那个不可能的节奏
6. 审查瓶颈在转移压力——AI生成代码量远超单人审查能力, senior工程师被迫承担不成比例的风险和认知负荷,维护系统 sanity 越来越吃力
7. 五条自救建议超实用——包括写胜利日志、Plan模式优先、不连续做AI任务、保护手工编码时间、到点就停不补任务等,帮你把AI从"消耗品"变回"助手"
URL:
https://evilmartians.com/chronicles/ai-assisted-engineers-are-burning-out-is-this-fine
标签:#软件工程 #AI辅助编程 #职业倦怠 #心理健康 #开发者体验 #生产力陷阱
总结:
文章揭示了AI辅助编程带来的隐性危机——AI倦怠。尽管AI让代码产出速度翻倍,但工程师们实际工作强度更高、成就感更低。文章通过"Ben和Alice"的认知负荷对比分析,指出AI将编程从"计划→ crafting→结果"的愉悦循环,变成了高强度审查和调试的消耗模式。同时探讨了失去代码库上下文、被动思考时间被挤压、虚假期望膨胀等日常 burnout 诱因,并提供了五条可落地的自救建议:认可自身价值、重构AI工作流、保留手工编码时间、严守工作边界、探索新兴趣领域。
文章要点:
1. AI让产出翻倍,却让工作强度翻倍——Alice用2小时完成Ben 4小时的活,但认知负荷极高且停不下来,最终4小时内做了2倍高强度工作,成就感反而更低
2. 编程的快乐循环被打破了——以前"计划→写代码→看到结果"的过程很治愈,现在变成"计划→直接看AI生成的结果",跳过了最享受的crafting环节,只剩下累人的审查工作
3. 你的代码库正在"离开你"——AI代理帮你记住了架构和边界情况,你不再需要在脑中维护整个系统,久而久之直觉判断力下降, supervising一个自己不懂的系统超级累
4. 被动思考时间被AI偷走了——以前洗澡、散步时大脑后台会默默解题,现在跟AI几分钟来回就"搞定"了,但往往是次优解,后面还要返工
5. 虚假期望是个陷阱——AI初期进展顺利,客户/老板把冲刺速度当成基线,等瓶颈出现时你反而要拼命维持那个不可能的节奏
6. 审查瓶颈在转移压力——AI生成代码量远超单人审查能力, senior工程师被迫承担不成比例的风险和认知负荷,维护系统 sanity 越来越吃力
7. 五条自救建议超实用——包括写胜利日志、Plan模式优先、不连续做AI任务、保护手工编码时间、到点就停不补任务等,帮你把AI从"消耗品"变回"助手"
URL:
https://evilmartians.com/chronicles/ai-assisted-engineers-are-burning-out-is-this-fine
《Chrome DevTools MCP v1 发布:为 AI 编码代理赋予浏览器调试超能力》
标签:#前端 #AI_Tools #Chrome_DevTools #MCP #Browser_Automation #Performance_Debugging
总结:
Chrome 团队正式发布 DevTools MCP v1,通过 Model Context Protocol 将 Chrome DevTools 的完整调试能力开放给 AI 编码代理。它让 Claude、Cursor、Copilot 等 AI 助手能够实时控制浏览器、抓取性能 trace、分析网络请求、检查控制台日志,甚至处理 1500 万行级别的性能数据,从而把"盲写代码"的 AI 变成能看、能测、能调优的闭环调试器。
文章要点:
1. 告别盲写时代:以前 AI 编码代理只能凭空推理代码,无法看到实际渲染效果。DevTools MCP 直接给 AI 装上"眼睛",让它能截图、查 DOM、读控制台、抓网络请求,基于真实浏览器状态做判断。
2. 40+ 工具全覆盖:从点击、填表、导航等自动化操作,到性能 trace 录制、Lighthouse 审计、内存堆快照、网络请求分析,几乎把 DevTools 面板的能力完整暴露给了 AI。
3. 性能分析是杀手锏:Paul Irish 演示了如何处理 1500 万行 JSON 的复杂性能 trace,MCP 服务器会解析并提炼出关键洞察,让 AI 帮你做原本需要资深性能专家才能完成的初步诊断。
4. 接入零门槛:支持 Claude Code、Cursor、Copilot、Gemini CLI、VS Code 等主流工具,一条 npx 命令即可启动,还能自动连接本地已运行的 Chrome 实例,无需额外配置。
5. 架构扎实可靠:底层基于 Chrome DevTools Protocol 和 Puppeteer,自动化操作自带智能等待,避免 flaky;同时支持 headless 和有头模式,适应不同场景需求。
URL:https://developer.chrome.com/blog/devtools-for-agents-v1
标签:#前端 #AI_Tools #Chrome_DevTools #MCP #Browser_Automation #Performance_Debugging
总结:
Chrome 团队正式发布 DevTools MCP v1,通过 Model Context Protocol 将 Chrome DevTools 的完整调试能力开放给 AI 编码代理。它让 Claude、Cursor、Copilot 等 AI 助手能够实时控制浏览器、抓取性能 trace、分析网络请求、检查控制台日志,甚至处理 1500 万行级别的性能数据,从而把"盲写代码"的 AI 变成能看、能测、能调优的闭环调试器。
文章要点:
1. 告别盲写时代:以前 AI 编码代理只能凭空推理代码,无法看到实际渲染效果。DevTools MCP 直接给 AI 装上"眼睛",让它能截图、查 DOM、读控制台、抓网络请求,基于真实浏览器状态做判断。
2. 40+ 工具全覆盖:从点击、填表、导航等自动化操作,到性能 trace 录制、Lighthouse 审计、内存堆快照、网络请求分析,几乎把 DevTools 面板的能力完整暴露给了 AI。
3. 性能分析是杀手锏:Paul Irish 演示了如何处理 1500 万行 JSON 的复杂性能 trace,MCP 服务器会解析并提炼出关键洞察,让 AI 帮你做原本需要资深性能专家才能完成的初步诊断。
4. 接入零门槛:支持 Claude Code、Cursor、Copilot、Gemini CLI、VS Code 等主流工具,一条 npx 命令即可启动,还能自动连接本地已运行的 Chrome 实例,无需额外配置。
5. 架构扎实可靠:底层基于 Chrome DevTools Protocol 和 Puppeteer,自动化操作自带智能等待,避免 flaky;同时支持 headless 和有头模式,适应不同场景需求。
URL:https://developer.chrome.com/blog/devtools-for-agents-v1
《告别Tailwind,重新学习组织CSS》
标签:#前端 #CSS #TailwindCSS #CSS架构 #响应式设计 #语义化HTML
总结:
文章要点:
1. 作者从Tailwind迁移到语义化HTML+原生CSS,发现Tailwind其实教会了她很多系统性思维(如重置样式、配色、字体层级),现在正把这些系统用原生CSS重新实现。
2. 采用"组件化"CSS架构:每个组件有独立类名和文件,CSS互不覆盖,编辑时只需关注100行左右的局部代码,大幅降低心智负担。
3. 保留Tailwind的实用系统:直接复制preflight重置样式,沿用配色变量和字体尺寸变量,让原生CSS也能像Tailwind一样快速决策"要大一点就用xl"。
4. 响应式设计新思路:减少媒体查询,改用CSS Grid的auto-fit和grid-template-areas实现自适应布局,这是Tailwind难以做到的"奇怪玩法"。
5. 迁移原因:新版Tailwind强依赖构建工具;作者CSS能力提升后想突破Tailwind的限制;受《Tailwind与CSS的女性气质》一文影响,决定认真对待CSS这门技术而非逃避它。
URL:https://jvns.ca/blog/2026/05/15/moving-away-from-tailwind--and-learning-to-structure-my-css-/
标签:#前端 #CSS #TailwindCSS #CSS架构 #响应式设计 #语义化HTML
总结:
文章要点:
1. 作者从Tailwind迁移到语义化HTML+原生CSS,发现Tailwind其实教会了她很多系统性思维(如重置样式、配色、字体层级),现在正把这些系统用原生CSS重新实现。
2. 采用"组件化"CSS架构:每个组件有独立类名和文件,CSS互不覆盖,编辑时只需关注100行左右的局部代码,大幅降低心智负担。
3. 保留Tailwind的实用系统:直接复制preflight重置样式,沿用配色变量和字体尺寸变量,让原生CSS也能像Tailwind一样快速决策"要大一点就用xl"。
4. 响应式设计新思路:减少媒体查询,改用CSS Grid的auto-fit和grid-template-areas实现自适应布局,这是Tailwind难以做到的"奇怪玩法"。
5. 迁移原因:新版Tailwind强依赖构建工具;作者CSS能力提升后想突破Tailwind的限制;受《Tailwind与CSS的女性气质》一文影响,决定认真对待CSS这门技术而非逃避它。
URL:https://jvns.ca/blog/2026/05/15/moving-away-from-tailwind--and-learning-to-structure-my-css-/
《Node.js官方发布Axios迁移Fetch指南》
标签:#后端 #NodeJS #FetchAPI #Axios #代码迁移 #HTTP请求
总结:
Node.js官方博客发布了一个将Axios代码自动迁移到原生WHATWG Fetch API的codemod工具,详细说明了迁移理由、Node.js版本要求、支持的转换方法及具体代码示例,同时坦诚标注了暂不支持的高级特性。
文章要点:
1. 迁移四大理由:Fetch是Node.js原生内置,无需额外依赖;性能针对现代运行时做了优化;严格遵循Web标准,浏览器和Node.js代码可复用;移除第三方库减少安全风险
2. 版本门槛:Node.js v18起Fetch可用但为实验性,v21起才稳定;如果包还兼容v18以下,迁移必须升主版本号并修改package.json的engines字段
3. 支持的转换方法覆盖很全,包括get、post、put、patch、delete、head、options、request以及postForm/putForm/patchForm等表单提交方式
4. 转换后的Fetch代码会用
5. 目前暂不支持拦截器、取消令牌和
6. 官方对Axios维护者表达了感谢,认可其对生态的贡献
URL:
https://nodejs.org/en/blog/migrations/axios-to-fetch
标签:#后端 #NodeJS #FetchAPI #Axios #代码迁移 #HTTP请求
总结:
Node.js官方博客发布了一个将Axios代码自动迁移到原生WHATWG Fetch API的codemod工具,详细说明了迁移理由、Node.js版本要求、支持的转换方法及具体代码示例,同时坦诚标注了暂不支持的高级特性。
文章要点:
1. 迁移四大理由:Fetch是Node.js原生内置,无需额外依赖;性能针对现代运行时做了优化;严格遵循Web标准,浏览器和Node.js代码可复用;移除第三方库减少安全风险
2. 版本门槛:Node.js v18起Fetch可用但为实验性,v21起才稳定;如果包还兼容v18以下,迁移必须升主版本号并修改package.json的engines字段
3. 支持的转换方法覆盖很全,包括get、post、put、patch、delete、head、options、request以及postForm/putForm/patchForm等表单提交方式
4. 转换后的Fetch代码会用
Object.assign(res, { data: await res.json() })来模拟Axios的response.data结构,让迁移后的代码改动最小化5. 目前暂不支持拦截器、取消令牌和
axios.create()实例配置等高级特性,这些场景需要手动处理6. 官方对Axios维护者表达了感谢,认可其对生态的贡献
URL:
https://nodejs.org/en/blog/migrations/axios-to-fetch
《Express全新面貌》
标签:#后端 #NodeJS #ExpressJS #Web框架 #文档重构 #开源社区
总结:
Express官方博客宣布完成网站全面重构与品牌焕新,涵盖Astro技术栈迁移、AI智能搜索、版本化文档及全新Logo设计,标志着这个Node.js生态老牌框架在2024年重启后进入新阶段。
文章要点:
1. 网站底层从Jekyll迁移到Astro,带来更灵活的组件模型、国际化支持和内容页性能提升,文档生成与维护方式也一并升级
2. 文档新增多版本并行浏览,Express 4和5的文档可以独立查看,告别版本混淆的烦恼
3. 搜索接入了Orama的AI能力,支持自然语言提问,找API和概念更快更准
4. 全站文档开放了
5. 接下来的重点是补齐内容缺口、完善多语言翻译,并让文档和新版本同步发布
6. 新Logo由社区公开协作设计,品牌定位为"Established·Dependable·Approachable",延续极简风格的同时开启新篇章
URL:
https://expressjs.com/en/blog/2026-05-18-a-new-look-for-express/
标签:#后端 #NodeJS #ExpressJS #Web框架 #文档重构 #开源社区
总结:
Express官方博客宣布完成网站全面重构与品牌焕新,涵盖Astro技术栈迁移、AI智能搜索、版本化文档及全新Logo设计,标志着这个Node.js生态老牌框架在2024年重启后进入新阶段。
文章要点:
1. 网站底层从Jekyll迁移到Astro,带来更灵活的组件模型、国际化支持和内容页性能提升,文档生成与维护方式也一并升级
2. 文档新增多版本并行浏览,Express 4和5的文档可以独立查看,告别版本混淆的烦恼
3. 搜索接入了Orama的AI能力,支持自然语言提问,找API和概念更快更准
4. 全站文档开放了
llms.txt端点,方便大模型和AI助手直接读取最新文档5. 接下来的重点是补齐内容缺口、完善多语言翻译,并让文档和新版本同步发布
6. 新Logo由社区公开协作设计,品牌定位为"Established·Dependable·Approachable",延续极简风格的同时开启新篇章
URL:
https://expressjs.com/en/blog/2026-05-18-a-new-look-for-express/
《Storybook 10.4 发布》
标签:#前端 #DevTools #Storybook #React #TanStackReact #ReactNative #AIAgent #MCP
总结:
Storybook 10.4 聚焦 AI 辅助开发与团队协作提效。AI Agent 现在能自动完成复杂项目的初始化、Mock 配置、Stories 编写与测试验证;侧边栏新增变更检测过滤器,帮你秒速锁定受代码改动影响的组件;一键分享让非技术成员无需等待 PR 或 CI 就能即时查看工作进度。此外还带来 TanStack React 官方支持、React Native 隔离优化,以及实验性的 React Component Meta 分析器,组件识别率达 100%,热更新速度最高提升 81 倍。
文章要点:
1. AI 全自动配置:只需一句 Prompt,AI Agent 就能分析项目结构、生成 Storybook 配置、编写 MSW Mock 和交互测试,并自动验证渲染效果。已在 Excalidraw、Bluesky 等复杂项目验证可行。
2. 侧边栏变更检测:新增 New、Modified、Related 三种过滤器,帮你秒速锁定代码变更波及的所有 Stories,特别适合 AI 生成代码后的快速审阅。
3. 一键云端分享:点击 Share 按钮即可将当前 Storybook 发布到 Chromatic,设计师和产品经理不用等 PR 或 CI,点开链接就能直接看效果、提反馈。
4. TanStack React 官方支持:全新 @storybook/tanstack-react 包,零配置接入类型安全路由与 Server Functions,由 Storybook 与 TanStack 核心团队联合打造。
5. React Native 隔离升级:新增独立应用入口,通过环境变量自动切换,Storybook 代码与业务代码完全隔离,零配置起步且向后兼容。
6. React Component Meta 实验特性:基于 Volar 和 TS Language Server 的新一代 Docgen,组件检出率 100%,开发模式热更新比旧方案快 43 到 81 倍,为 AI 提供更精准的组件元数据。
URL:https://storybook.js.org/blog/storybook-10-4/
标签:#前端 #DevTools #Storybook #React #TanStackReact #ReactNative #AIAgent #MCP
总结:
Storybook 10.4 聚焦 AI 辅助开发与团队协作提效。AI Agent 现在能自动完成复杂项目的初始化、Mock 配置、Stories 编写与测试验证;侧边栏新增变更检测过滤器,帮你秒速锁定受代码改动影响的组件;一键分享让非技术成员无需等待 PR 或 CI 就能即时查看工作进度。此外还带来 TanStack React 官方支持、React Native 隔离优化,以及实验性的 React Component Meta 分析器,组件识别率达 100%,热更新速度最高提升 81 倍。
文章要点:
1. AI 全自动配置:只需一句 Prompt,AI Agent 就能分析项目结构、生成 Storybook 配置、编写 MSW Mock 和交互测试,并自动验证渲染效果。已在 Excalidraw、Bluesky 等复杂项目验证可行。
2. 侧边栏变更检测:新增 New、Modified、Related 三种过滤器,帮你秒速锁定代码变更波及的所有 Stories,特别适合 AI 生成代码后的快速审阅。
3. 一键云端分享:点击 Share 按钮即可将当前 Storybook 发布到 Chromatic,设计师和产品经理不用等 PR 或 CI,点开链接就能直接看效果、提反馈。
4. TanStack React 官方支持:全新 @storybook/tanstack-react 包,零配置接入类型安全路由与 Server Functions,由 Storybook 与 TanStack 核心团队联合打造。
5. React Native 隔离升级:新增独立应用入口,通过环境变量自动切换,Storybook 代码与业务代码完全隔离,零配置起步且向后兼容。
6. React Component Meta 实验特性:基于 Volar 和 TS Language Server 的新一代 Docgen,组件检出率 100%,开发模式热更新比旧方案快 43 到 81 倍,为 AI 提供更精准的组件元数据。
URL:https://storybook.js.org/blog/storybook-10-4/
《TanStack中的React服务端组件》
标签:#前端 #React_Server_Components #TanStack_Start #NextJs #Bundle_Optimization
总结:
TanStack Start实现了与Next.js截然不同的React服务端组件方案,通过显式API将组件渲染保留在服务端,避免将繁重代码发送至客户端。文章以应用外壳为例,展示RSC如何将客户端Bundle从308KB缩减至203KB,并说明其适合大型非交互式组件树的场景,同时澄清RSC并非数据加载或SSR的替代品,而是针对性的性能优化工具。
文章要点:
1. RSC是只在服务端运行的React组件,可以直接在组件里写await查数据,而且组件代码不会发送到浏览器,不用担心数据库密码暴露给前端
2. TanStack实现RSC的方式特别直白,通过renderServerComponent这类API就能显式声明,作者认为比Next.js的实现更好懂
3. 别误会,RSC不是用来替代数据加载或SSR的,TanStack的loader和原有的服务端渲染已经做得很好了,RSC真正的价值是帮浏览器"减肥"
4. 文章举了个生动的例子:故意引入整个图标库来模拟大型组件树,结果RSC把客户端JS从308KB砍到了203KB,省了不少流量
5. 更妙的是RSC还能接收客户端组件当"插槽"传进来,配合Suspense实现流式渲染,让页面边加载边呈现,体验很丝滑
6. 不过作者也提醒,RSC不是银弹,如果你的组件树不大、依赖不多,用它带来的收益可能微乎其微,得看场景取舍
URL:https://frontendmasters.com/blog/react-server-components-in-tanstack/
标签:#前端 #React_Server_Components #TanStack_Start #NextJs #Bundle_Optimization
总结:
TanStack Start实现了与Next.js截然不同的React服务端组件方案,通过显式API将组件渲染保留在服务端,避免将繁重代码发送至客户端。文章以应用外壳为例,展示RSC如何将客户端Bundle从308KB缩减至203KB,并说明其适合大型非交互式组件树的场景,同时澄清RSC并非数据加载或SSR的替代品,而是针对性的性能优化工具。
文章要点:
1. RSC是只在服务端运行的React组件,可以直接在组件里写await查数据,而且组件代码不会发送到浏览器,不用担心数据库密码暴露给前端
2. TanStack实现RSC的方式特别直白,通过renderServerComponent这类API就能显式声明,作者认为比Next.js的实现更好懂
3. 别误会,RSC不是用来替代数据加载或SSR的,TanStack的loader和原有的服务端渲染已经做得很好了,RSC真正的价值是帮浏览器"减肥"
4. 文章举了个生动的例子:故意引入整个图标库来模拟大型组件树,结果RSC把客户端JS从308KB砍到了203KB,省了不少流量
5. 更妙的是RSC还能接收客户端组件当"插槽"传进来,配合Suspense实现流式渲染,让页面边加载边呈现,体验很丝滑
6. 不过作者也提醒,RSC不是银弹,如果你的组件树不大、依赖不多,用它带来的收益可能微乎其微,得看场景取舍
URL:https://frontendmasters.com/blog/react-server-components-in-tanstack/
《Orval:从OpenAPI规范自动生成类型安全客户端代码》
标签:#前端 #全栈 #OpenAPI #TypeScript #CodeGeneration #ReactQuery #Swagger #APIClient
总结:
Orval 是一个代码生成工具,能读取 OpenAPI v3 或 Swagger v2 规范(支持 yaml 和 json 格式),自动生成带完整 TypeScript 类型签名的客户端代码。它支持 React Query、SWR、Vue Query、Svelte Query、Solid Query、Angular、Hono、Zod、原生 fetch 和 MCP 等多种框架与库,同时还能生成模型、请求函数、Hooks 和 Mock 数据。项目提供在线 Playground 快速体验,开发时使用 Bun 构建,社区活跃且有赞助支持。
文章要点:
1. Orval 的核心能力是从 OpenAPI / Swagger 文档一键生成类型安全的 TS 客户端,告别手写接口代码的繁琐工作
2. 生态支持非常全面,覆盖了 React、Vue、Svelte、Solid、Angular 等主流前端框架,还有 React Query、SWR 等数据获取方案
3. 不只是生成请求函数,还能顺带产出数据模型(Models)、React Hooks、以及用于测试的 Mock 数据,一条龙服务
4. 项目内置了在线 Playground,不用安装就能上手体验,对新手和想快速验证的同学很友好
5. 开发侧使用 Bun 作为包管理工具,测试流程完善,包含单元测试、快照测试和 CLI 验证
URL:https://github.com/orval-labs/orval
标签:#前端 #全栈 #OpenAPI #TypeScript #CodeGeneration #ReactQuery #Swagger #APIClient
总结:
Orval 是一个代码生成工具,能读取 OpenAPI v3 或 Swagger v2 规范(支持 yaml 和 json 格式),自动生成带完整 TypeScript 类型签名的客户端代码。它支持 React Query、SWR、Vue Query、Svelte Query、Solid Query、Angular、Hono、Zod、原生 fetch 和 MCP 等多种框架与库,同时还能生成模型、请求函数、Hooks 和 Mock 数据。项目提供在线 Playground 快速体验,开发时使用 Bun 构建,社区活跃且有赞助支持。
文章要点:
1. Orval 的核心能力是从 OpenAPI / Swagger 文档一键生成类型安全的 TS 客户端,告别手写接口代码的繁琐工作
2. 生态支持非常全面,覆盖了 React、Vue、Svelte、Solid、Angular 等主流前端框架,还有 React Query、SWR 等数据获取方案
3. 不只是生成请求函数,还能顺带产出数据模型(Models)、React Hooks、以及用于测试的 Mock 数据,一条龙服务
4. 项目内置了在线 Playground,不用安装就能上手体验,对新手和想快速验证的同学很友好
5. 开发侧使用 Bun 作为包管理工具,测试流程完善,包含单元测试、快照测试和 CLI 验证
URL:https://github.com/orval-labs/orval
《React应用安全指南》
标签:#前端 #React #WebSecurity #XSS_Prevention #Content_Security_Policy #Server_Side_Validation
总结:
React内置的JSX自动转义机制能有效防御常见XSS攻击,但随着Server Components普及,前端开发者需承担更多安全责任。本文系统梳理了React应用的安全实践:正确使用dangerouslySetInnerHTML的消毒策略、采用HttpOnly Cookie的安全认证方案、服务端输入验证与参数化查询、以及CSP策略的纵深防御配置,帮助开发者构建多层防护体系。
文章要点:
1. React的JSX表达式会自动将
2. 一旦使用 dangerouslySetInnerHTML 这个"逃生舱",就必须先用 DOMPurify 对HTML做彻底消毒,剥离危险标签和
3. 认证令牌千万别往 localStorage 里塞,XSS漏洞一出现令牌就会被顺走;改用 HttpOnly Cookie,配合 Secure 和 SameSite=Strict 属性,再辅以CSRF Token,才能守住登录态
4. 客户端验证只是改善体验,真正的安全防线在服务端;用 Zod 做类型安全的Schema校验,数据库查询坚持用参数化占位符(如
5. Content Security Policy 是最后一道保险,通过HTTP头限制资源加载来源,用 nonce 管理必要的内联脚本,配合 strict-dynamic 支持React代码分割,上线前记得先用 Report-Only 模式测试策略
URL:
https://certificates.dev/blog/security-in-react-applications
标签:#前端 #React #WebSecurity #XSS_Prevention #Content_Security_Policy #Server_Side_Validation
总结:
React内置的JSX自动转义机制能有效防御常见XSS攻击,但随着Server Components普及,前端开发者需承担更多安全责任。本文系统梳理了React应用的安全实践:正确使用dangerouslySetInnerHTML的消毒策略、采用HttpOnly Cookie的安全认证方案、服务端输入验证与参数化查询、以及CSP策略的纵深防御配置,帮助开发者构建多层防护体系。
文章要点:
1. React的JSX表达式会自动将
< > & 等特殊字符转义为HTML实体,这是抵御XSS的第一道防线,所有通过 {} 渲染的内容默认都是安全的2. 一旦使用 dangerouslySetInnerHTML 这个"逃生舱",就必须先用 DOMPurify 对HTML做彻底消毒,剥离危险标签和
javascript: 等恶意协议,Markdown渲染也建议转成React元素而非原始HTML3. 认证令牌千万别往 localStorage 里塞,XSS漏洞一出现令牌就会被顺走;改用 HttpOnly Cookie,配合 Secure 和 SameSite=Strict 属性,再辅以CSRF Token,才能守住登录态
4. 客户端验证只是改善体验,真正的安全防线在服务端;用 Zod 做类型安全的Schema校验,数据库查询坚持用参数化占位符(如
$1 $2),永远不要把用户输入拼进SQL字符串5. Content Security Policy 是最后一道保险,通过HTTP头限制资源加载来源,用 nonce 管理必要的内联脚本,配合 strict-dynamic 支持React代码分割,上线前记得先用 Report-Only 模式测试策略
URL:
https://certificates.dev/blog/security-in-react-applications
《AI重塑软件行业:从稀缺到泛滥的四大影响》
标签:#科技趋势 #AI变革 #软件行业 #SaaS #VibeCoding
总结:
AI让软件开发门槛骤降,软件正从"高壁垒高尊重"的稀缺品变成"人人可评判"的日用品。行业将经历薪资压缩、选择过剩导致用户忠诚度下降、中层产品消亡等剧变。未来赢家不再卖工具,而是直接卖服务结果;个人需成为领域专家或超级个体,才能在幂律分布中存活。
文章要点:
1. 软件行业正在"营销化":门槛降低+可见性提高=尊重崩塌。就像没人敢评判数学证明,但人人能对落地页配色指手画脚一样,VibeCoding让外行也能"看懂"软件,开发者薪资分布将从当前最紧的2.65倍向写作/设计行业的3.5倍扩散
2. 选择悖论杀死用户忠诚度:当项目管理工具有3个时你会选定一个,有300个时你会不断寻找"完美匹配"甚至自己Vibe一个。软件将从差异化卖点变成像水一样的基础资源
3. 中层SaaS即将灭绝:App Store里1%的App拿走95%收入,SaaS也将幂律化。中等规模公司(收费高但无网络效应)会被免费AI工具和大平台两头挤压,同时超长尾的"一次性个人工具"将爆发式增长
4. 卖服务而非卖产品才是未来:企业每花1美元买软件,花6美元买服务。AI时代的机会是用软件成本做服务生意——不是卖更好的记账软件,而是直接帮你把账做完。专家可以服务200个客户,AI处理琐事,人只做判断
URL:
https://www.terezatizkova.com/writing/software-abundance
标签:#科技趋势 #AI变革 #软件行业 #SaaS #VibeCoding
总结:
AI让软件开发门槛骤降,软件正从"高壁垒高尊重"的稀缺品变成"人人可评判"的日用品。行业将经历薪资压缩、选择过剩导致用户忠诚度下降、中层产品消亡等剧变。未来赢家不再卖工具,而是直接卖服务结果;个人需成为领域专家或超级个体,才能在幂律分布中存活。
文章要点:
1. 软件行业正在"营销化":门槛降低+可见性提高=尊重崩塌。就像没人敢评判数学证明,但人人能对落地页配色指手画脚一样,VibeCoding让外行也能"看懂"软件,开发者薪资分布将从当前最紧的2.65倍向写作/设计行业的3.5倍扩散
2. 选择悖论杀死用户忠诚度:当项目管理工具有3个时你会选定一个,有300个时你会不断寻找"完美匹配"甚至自己Vibe一个。软件将从差异化卖点变成像水一样的基础资源
3. 中层SaaS即将灭绝:App Store里1%的App拿走95%收入,SaaS也将幂律化。中等规模公司(收费高但无网络效应)会被免费AI工具和大平台两头挤压,同时超长尾的"一次性个人工具"将爆发式增长
4. 卖服务而非卖产品才是未来:企业每花1美元买软件,花6美元买服务。AI时代的机会是用软件成本做服务生意——不是卖更好的记账软件,而是直接帮你把账做完。专家可以服务200个客户,AI处理琐事,人只做判断
URL:
https://www.terezatizkova.com/writing/software-abundance
《cc-connect:本地AI编程助手连接消息平台桥梁》
标签:#开发工具 #AI编程助手 #ClaudeCode #CursorAgent #GeminiCLI #Codex #Telegram #飞书 #钉钉 #Slack #Discord #WeChatWork #LINE #QQ #Weibo
总结:
cc-connect 是一个开源的本地AI编程代理桥接工具,让你可以在飞书、钉钉、Telegram、Slack、Discord、企业微信、LINE、QQ、微博甚至个人微信等11个平台上,随时随地"聊天式"操控 Claude Code、Cursor、Gemini CLI、Codex 等10+种AI编程助手。无需公网IP,手机发消息就能让AI写代码、改Bug、做数据分析,真正实现" anywhere, anytime "的AI开发体验。
文章要点:
• 超全平台覆盖:支持飞书、钉钉、Telegram、Slack、Discord、企业微信、LINE、QQ、微博、个人微信等11个主流聊天平台,大部分平台无需公网IP即可直连,手机/平板随时操控
• 10+AI助手全家桶:完美桥接 Claude Code、Codex、Cursor Agent、Gemini CLI、Kimi CLI、Qoder CLI、OpenCode、iFlow CLI、Pi、Devin 等,还支持 ACP 协议兼容的任何新代理
• 聊天里掌控一切:通过 /model 切换模型、/mode 调整权限模式、/dir 切换工作目录、/new 管理会话、/cron 设置定时任务,所有操作都在聊天窗口完成
• 多Agent协同作战:支持在一个群聊里绑定多个AI机器人,让Claude和Gemini互相配合、接力完成任务,实现"AI团队"协作
• 多模态与记忆:支持语音消息(STT/TTS)、图片截图、文件收发;Agent记忆持久化,/memory 指令随时读写,避免重复交代背景
• Web管理后台:内置完整的Web Admin UI,支持项目CRUD、会话监控、定时任务编辑、Provider管理,5种语言界面,零配置上手
• 安全隔离:支持 Linux/macOS 下的 OS-User 隔离运行,不同项目可用不同Unix用户启动Agent,配合 cc-connect doctor 做安全审计
• 生命周期钩子:支持7种事件类型(消息收发、会话启停、定时触发、权限请求、错误)触发Shell命令或HTTP Webhook,方便集成CI/CD
URL:https://github.com/chenhg5/cc-connect
标签:#开发工具 #AI编程助手 #ClaudeCode #CursorAgent #GeminiCLI #Codex #Telegram #飞书 #钉钉 #Slack #Discord #WeChatWork #LINE #QQ #Weibo
总结:
cc-connect 是一个开源的本地AI编程代理桥接工具,让你可以在飞书、钉钉、Telegram、Slack、Discord、企业微信、LINE、QQ、微博甚至个人微信等11个平台上,随时随地"聊天式"操控 Claude Code、Cursor、Gemini CLI、Codex 等10+种AI编程助手。无需公网IP,手机发消息就能让AI写代码、改Bug、做数据分析,真正实现" anywhere, anytime "的AI开发体验。
文章要点:
• 超全平台覆盖:支持飞书、钉钉、Telegram、Slack、Discord、企业微信、LINE、QQ、微博、个人微信等11个主流聊天平台,大部分平台无需公网IP即可直连,手机/平板随时操控
• 10+AI助手全家桶:完美桥接 Claude Code、Codex、Cursor Agent、Gemini CLI、Kimi CLI、Qoder CLI、OpenCode、iFlow CLI、Pi、Devin 等,还支持 ACP 协议兼容的任何新代理
• 聊天里掌控一切:通过 /model 切换模型、/mode 调整权限模式、/dir 切换工作目录、/new 管理会话、/cron 设置定时任务,所有操作都在聊天窗口完成
• 多Agent协同作战:支持在一个群聊里绑定多个AI机器人,让Claude和Gemini互相配合、接力完成任务,实现"AI团队"协作
• 多模态与记忆:支持语音消息(STT/TTS)、图片截图、文件收发;Agent记忆持久化,/memory 指令随时读写,避免重复交代背景
• Web管理后台:内置完整的Web Admin UI,支持项目CRUD、会话监控、定时任务编辑、Provider管理,5种语言界面,零配置上手
• 安全隔离:支持 Linux/macOS 下的 OS-User 隔离运行,不同项目可用不同Unix用户启动Agent,配合 cc-connect doctor 做安全审计
• 生命周期钩子:支持7种事件类型(消息收发、会话启停、定时触发、权限请求、错误)触发Shell命令或HTTP Webhook,方便集成CI/CD
URL:https://github.com/chenhg5/cc-connect
《Agent Harness 的解剖学:将 LLM 转化为工作引擎的系统工程》
标签:#AI_Agent #LLM #LangChain #Harness_Engineering #Context_Management #Tool_Orchestration
总结:Agent Harness 是包裹在大模型之外的全套"脚手架"——包括系统提示词、工具调用、文件系统、沙盒环境、记忆管理和编排逻辑等。它把只能输入输出文本的"裸模型",改造成能持久化状态、执行代码、自主规划并长期协作的合格智能体。文章从模型能力边界出发,逆向推导出每个 Harness 组件存在的必然性,并指出 Harness 工程与模型训练正在协同进化,优化 Harness 本身就能让同一模型在基准测试上从 Top 30 跃升至 Top 5。
文章要点:
- Agent = Model + Harness:如果你不是模型本身,那你就是 Harness。Harness 是除模型权重外的一切代码、配置与执行逻辑,负责把模型的"智商"转化为"产能"
- 模型天生会"健忘":裸模型只能处理上下文窗口内的信息,无法跨会话记住状态、执行代码或获取实时知识,这些"超能力"全靠 Harness 赋予
- 文件系统是最底层的基础设施:给 Agent 一个工作目录,它就能读写数据、卸载超长上下文、还能让多个 Agent 像同事一样通过共享文件协作
- Bash + 代码执行是万能瑞士军刀:与其为每个场景预写工具,不如直接给 Agent 一个终端,让它现场写代码、装依赖、自己造工具解决问题
- 沙盒让 Agent 安全地"动手":在隔离环境里跑代码、测效果、看日志,既防手滑删库,又能按需扩容、用完即焚
- 记忆靠"上下文注入"实现:通过 AGENTS.md 等记忆文件标准,把历史经验塞进新会话;再配合网络搜索和 MCP 工具,突破训练数据的时间 cutoff
- 上下文腐烂是隐形杀手:随着对话变长,模型性能会断崖下跌。Harness 通过 Compaction(智能摘要)、Tool 输出卸载和 Skills 渐进式加载来保护宝贵的上下文空间
- 长程任务需要"接力跑":Ralph Loop 机制让 Agent 在上下文耗尽时,从文件系统读取进度、换一块"干净"上下文继续干;配合 git 记录和自验证循环,实现跨会话的复杂项目开发
- Harness 与模型在"共同进化":Claude Code、Codex 等产品会把 Harness 逻辑也放进后训练环节,但有趣的是——换一套更优 Harness,同一模型排名能从 30 名外冲进前 5
- 未来 Harness 会"瘦身"但不会消失:随着模型原生规划、验证能力变强,部分 Harness 功能会被模型吸收;但就像提示工程至今仍有价值,Harness 工程作为"围绕模型智能设计系统"的学科,仍将持续发光
文章URL:https://www.langchain.com/blog/the-anatomy-of-an-agent-harness
标签:#AI_Agent #LLM #LangChain #Harness_Engineering #Context_Management #Tool_Orchestration
总结:Agent Harness 是包裹在大模型之外的全套"脚手架"——包括系统提示词、工具调用、文件系统、沙盒环境、记忆管理和编排逻辑等。它把只能输入输出文本的"裸模型",改造成能持久化状态、执行代码、自主规划并长期协作的合格智能体。文章从模型能力边界出发,逆向推导出每个 Harness 组件存在的必然性,并指出 Harness 工程与模型训练正在协同进化,优化 Harness 本身就能让同一模型在基准测试上从 Top 30 跃升至 Top 5。
文章要点:
- Agent = Model + Harness:如果你不是模型本身,那你就是 Harness。Harness 是除模型权重外的一切代码、配置与执行逻辑,负责把模型的"智商"转化为"产能"
- 模型天生会"健忘":裸模型只能处理上下文窗口内的信息,无法跨会话记住状态、执行代码或获取实时知识,这些"超能力"全靠 Harness 赋予
- 文件系统是最底层的基础设施:给 Agent 一个工作目录,它就能读写数据、卸载超长上下文、还能让多个 Agent 像同事一样通过共享文件协作
- Bash + 代码执行是万能瑞士军刀:与其为每个场景预写工具,不如直接给 Agent 一个终端,让它现场写代码、装依赖、自己造工具解决问题
- 沙盒让 Agent 安全地"动手":在隔离环境里跑代码、测效果、看日志,既防手滑删库,又能按需扩容、用完即焚
- 记忆靠"上下文注入"实现:通过 AGENTS.md 等记忆文件标准,把历史经验塞进新会话;再配合网络搜索和 MCP 工具,突破训练数据的时间 cutoff
- 上下文腐烂是隐形杀手:随着对话变长,模型性能会断崖下跌。Harness 通过 Compaction(智能摘要)、Tool 输出卸载和 Skills 渐进式加载来保护宝贵的上下文空间
- 长程任务需要"接力跑":Ralph Loop 机制让 Agent 在上下文耗尽时,从文件系统读取进度、换一块"干净"上下文继续干;配合 git 记录和自验证循环,实现跨会话的复杂项目开发
- Harness 与模型在"共同进化":Claude Code、Codex 等产品会把 Harness 逻辑也放进后训练环节,但有趣的是——换一套更优 Harness,同一模型排名能从 30 名外冲进前 5
- 未来 Harness 会"瘦身"但不会消失:随着模型原生规划、验证能力变强,部分 Harness 功能会被模型吸收;但就像提示工程至今仍有价值,Harness 工程作为"围绕模型智能设计系统"的学科,仍将持续发光
文章URL:https://www.langchain.com/blog/the-anatomy-of-an-agent-harness
《为特定场景"投影"React:从60KB到7KB的极致裁剪实验》
标签:#前端 #工程化 #React #TanStackStart #AICoding #PerformanceOptimization #Vite #RSC #BundleSize
总结:
TanStack作者Tanner Linsley发现React 19在Vite打包后仍占约60KB gzip,远大于TanStack全家桶总和。受"代码即物化视图"理念启发,他借助AI代理在一天内生成了一个针对TanStack Start需求定制的React"投影"——保留完整公共API,但移除并发调度、时间切片等不需要的功能,核心仅7.08KB gzip。该项目已在其个人博客和tanstack.com生产环境运行,JS体积减少33%至85%,渲染性能提升2到3倍,验证了当代码生成成本骤降时,为特定场景定制依赖库投影的可行性。
文章要点:
- 作者发现React打包后仍有约60KB,比TanStack全家桶加起来还"胖",成了整个技术栈里"最不能删却又最大块头"的存在
- 本想用Preact"瘦身",但它和React 19在use()、服务端动作、hydration等边缘地带已经"渐行渐远",补丁叠补丁让人望而却步
- 一个超酷的观点启发了他:如果写代码能像查数据库一样"按需生成",那代码本身只是"理念"的一种展示形式,我们完全可以为不同场景生成不同版本的React
- 借助AI代理,只用一天就"捏"出了一个迷你版React,保留了你熟悉的hooks、JSX、Suspense和SSR,但扔掉了并发调度、时间切片这些TanStack Start用不上的"重型装备"
- 设计得像乐高一样:7KB核心底座 + 8个可插拔功能(context、suspense、portal等),不需要的模块在构建时直接替换成空实现,不会混进最终包
- 真刀真枪上了生产环境:个人博客JS少了三分之一,首屏快了近两成;tanstack.com这种"重火力"站点也成功扛住,客户端JS砍掉近1MB
- 作者抛出思考题:当定制一个库的成本从几个月降到几天,继续默认 shipped 全套通用库,反而成了一种需要掂量的选择
- 他强调这不是要"取代React",更像是Linux发行版或歌曲混音——同一个内核,根据不同听众的口味调出不同版本
文章URL:https://tannerlinsley.com/posts/projecting-react
标签:#前端 #工程化 #React #TanStackStart #AICoding #PerformanceOptimization #Vite #RSC #BundleSize
总结:
TanStack作者Tanner Linsley发现React 19在Vite打包后仍占约60KB gzip,远大于TanStack全家桶总和。受"代码即物化视图"理念启发,他借助AI代理在一天内生成了一个针对TanStack Start需求定制的React"投影"——保留完整公共API,但移除并发调度、时间切片等不需要的功能,核心仅7.08KB gzip。该项目已在其个人博客和tanstack.com生产环境运行,JS体积减少33%至85%,渲染性能提升2到3倍,验证了当代码生成成本骤降时,为特定场景定制依赖库投影的可行性。
文章要点:
- 作者发现React打包后仍有约60KB,比TanStack全家桶加起来还"胖",成了整个技术栈里"最不能删却又最大块头"的存在
- 本想用Preact"瘦身",但它和React 19在use()、服务端动作、hydration等边缘地带已经"渐行渐远",补丁叠补丁让人望而却步
- 一个超酷的观点启发了他:如果写代码能像查数据库一样"按需生成",那代码本身只是"理念"的一种展示形式,我们完全可以为不同场景生成不同版本的React
- 借助AI代理,只用一天就"捏"出了一个迷你版React,保留了你熟悉的hooks、JSX、Suspense和SSR,但扔掉了并发调度、时间切片这些TanStack Start用不上的"重型装备"
- 设计得像乐高一样:7KB核心底座 + 8个可插拔功能(context、suspense、portal等),不需要的模块在构建时直接替换成空实现,不会混进最终包
- 真刀真枪上了生产环境:个人博客JS少了三分之一,首屏快了近两成;tanstack.com这种"重火力"站点也成功扛住,客户端JS砍掉近1MB
- 作者抛出思考题:当定制一个库的成本从几个月降到几天,继续默认 shipped 全套通用库,反而成了一种需要掂量的选择
- 他强调这不是要"取代React",更像是Linux发行版或歌曲混音——同一个内核,根据不同听众的口味调出不同版本
文章URL:https://tannerlinsley.com/posts/projecting-react
《Mirage:AI Agent的统一虚拟文件系统》
标签:#AI_Tools #AI_Agent #文件系统 #Python #TypeScript #SDK #S3 #Slack #GitHub #Redis #缓存 #OpenAI #Vercel_AI_SDK #LangChain
总结:
Mirage 是一个专为 AI Agent 设计的统一虚拟文件系统,它将 S3、Google Drive、Slack、Gmail、Redis 等数十种后端服务挂载到同一棵文件树下。Agent 只需用熟悉的 Unix/bash 工具(如 grep、cat、cp)就能跨服务读写数据,无需学习 N 个 SDK 或 MCP。支持 Python/TypeScript SDK 和 CLI,可嵌入 FastAPI、Express 等应用,并内置双层缓存(索引缓存 + 文件缓存)减少网络开销,兼容 OpenAI Agents SDK、Vercel AI SDK、LangChain 等主流框架。
文章要点:
- 统一挂载,万物皆文件:把 S3、GDrive、Slack、GitHub、MongoDB、Redis 等后端并排挂载到同一个根目录下,Agent 看到的始终只有一棵树
- 零学习成本:任何懂 bash 的 LLM 都能直接上手,用
- 双层缓存省流量:自带索引缓存(目录列表)和文件缓存(对象字节),默认用内存,也可切 Redis 共享给多进程/多机器
- 多语言 SDK + CLI:提供 Python 和 TypeScript(Node / Browser / Core)SDK,以及轻量 CLI,可嵌入你的 FastAPI、Express 或浏览器应用
- 主流框架即插即用:已适配 OpenAI Agents SDK、Vercel AI SDK、LangChain、Pydantic AI、CAMEL、OpenHands 等
- 工作空间可移植:支持克隆、快照、版本化管理,Agent 运行环境能在机器间迁移而不必重新配置
文章URL:https://github.com/strukto-ai/mirage
标签:#AI_Tools #AI_Agent #文件系统 #Python #TypeScript #SDK #S3 #Slack #GitHub #Redis #缓存 #OpenAI #Vercel_AI_SDK #LangChain
总结:
Mirage 是一个专为 AI Agent 设计的统一虚拟文件系统,它将 S3、Google Drive、Slack、Gmail、Redis 等数十种后端服务挂载到同一棵文件树下。Agent 只需用熟悉的 Unix/bash 工具(如 grep、cat、cp)就能跨服务读写数据,无需学习 N 个 SDK 或 MCP。支持 Python/TypeScript SDK 和 CLI,可嵌入 FastAPI、Express 等应用,并内置双层缓存(索引缓存 + 文件缓存)减少网络开销,兼容 OpenAI Agents SDK、Vercel AI SDK、LangChain 等主流框架。
文章要点:
- 统一挂载,万物皆文件:把 S3、GDrive、Slack、GitHub、MongoDB、Redis 等后端并排挂载到同一个根目录下,Agent 看到的始终只有一棵树
- 零学习成本:任何懂 bash 的 LLM 都能直接上手,用
grep、cat、cp、wc 这些经典命令跨服务操作,不用记新 API- 双层缓存省流量:自带索引缓存(目录列表)和文件缓存(对象字节),默认用内存,也可切 Redis 共享给多进程/多机器
- 多语言 SDK + CLI:提供 Python 和 TypeScript(Node / Browser / Core)SDK,以及轻量 CLI,可嵌入你的 FastAPI、Express 或浏览器应用
- 主流框架即插即用:已适配 OpenAI Agents SDK、Vercel AI SDK、LangChain、Pydantic AI、CAMEL、OpenHands 等
- 工作空间可移植:支持克隆、快照、版本化管理,Agent 运行环境能在机器间迁移而不必重新配置
文章URL:https://github.com/strukto-ai/mirage
《probe-image-size:无需完整下载即可获取图片尺寸》
标签:#NodeJS #ImageProcessing #ProbeImageSize #StreamParsing #ImageMetadata #PerformanceOptimization
总结:
probe-image-size 是一款轻量级 Node.js 库,能在不下载完整图片的情况下快速探测图片尺寸与类型。它支持 URL、Stream 和 Buffer 三种输入方式,覆盖 JPG/PNG/WebP/AVIF/HEIC 等主流格式,通过流式解析仅读取文件头部信息,对大图和远程资源特别省内存、省带宽,是图片预处理场景的理想选择。
文章要点:
- 支持超多种格式:JPG、GIF、PNG、WebP、BMP、TIFF、SVG、PSD、ICO、AVIF、HEIC、HEIF 统统能读,覆盖面很广
- 流式探测超省资源:不需要把整张大图拉下来,只读取文件头部就能算出宽高,远程大图也能秒开,内存和带宽都友好
- 三种输入方式任选:可以直接传网址自动下载探测,也可以丢文件流或 Buffer 进去,同步异步 API 都有,接入很灵活
- 额外信息一并返回:除了宽高,还会带回图片类型、MIME、方向角(Orientation),ICO 和 AVIF 还能拿到多尺寸变体列表
- 安全提示要记牢:对于不可信来源的图片,返回的宽高值别直接信任,建议在自己的业务里再加一层范围校验
文章URL:https://github.com/nodeca/probe-image-size
标签:#NodeJS #ImageProcessing #ProbeImageSize #StreamParsing #ImageMetadata #PerformanceOptimization
总结:
probe-image-size 是一款轻量级 Node.js 库,能在不下载完整图片的情况下快速探测图片尺寸与类型。它支持 URL、Stream 和 Buffer 三种输入方式,覆盖 JPG/PNG/WebP/AVIF/HEIC 等主流格式,通过流式解析仅读取文件头部信息,对大图和远程资源特别省内存、省带宽,是图片预处理场景的理想选择。
文章要点:
- 支持超多种格式:JPG、GIF、PNG、WebP、BMP、TIFF、SVG、PSD、ICO、AVIF、HEIC、HEIF 统统能读,覆盖面很广
- 流式探测超省资源:不需要把整张大图拉下来,只读取文件头部就能算出宽高,远程大图也能秒开,内存和带宽都友好
- 三种输入方式任选:可以直接传网址自动下载探测,也可以丢文件流或 Buffer 进去,同步异步 API 都有,接入很灵活
- 额外信息一并返回:除了宽高,还会带回图片类型、MIME、方向角(Orientation),ICO 和 AVIF 还能拿到多尺寸变体列表
- 安全提示要记牢:对于不可信来源的图片,返回的宽高值别直接信任,建议在自己的业务里再加一层范围校验
文章URL:https://github.com/nodeca/probe-image-size