- Published on
2025-第二十一周
- Authors
- Name
- AgedCoffee
- @__middle__child
该周报主要为各个地方内容的汇总整理
- 技术
- ESLint v9.0.0:回顾与展望 - ESLint - 可插拔的 JavaScript 代码检查工具
- Next.js 服务器操作是对外公开的 API 端点
- 直接用 React 就完了
- CONCURRENT RENDERING - 并发渲染
- 工具
- ibelick/prompt-kit: AI 应用核心构建模块。高质量、易用且可自定义的 AI 界面组件。
- React Scan - Chrome 应用商店
- astracompiler/cli: 🚀 快速、可靠且易于使用的 js 转 exe 编译器
- zumerlab/snapdom: snapDOM 以超快速度和精准度将 HTML 元素捕获为图像
- kepano/defuddle: 从网页中提取主要内容
- typescript-sdk
- ioredis
- jellydn/next-validations: NextJS API 验证工具,支持 Zod、Yup、Fastest-Validator、Joi 等
- openapi-ts
- protobuf-es
- 更新
- next.config.js: reactCompiler | Next.js
- Chrome 开发者博客 | Chrome 137 版开发者工具的新变化
- 微软社区中心宣布:VS Code 中推出全新的 PostgreSQL IDE
- 发布 v1.3.0 · unnoq/orpc · GitHub
- 设计
- 构建实用的用户体验策略框架
- AI
- VS Code:开源人工智能编辑器
- 介绍 Claude 4 \ Anthropic
- 其他
- 工程师在沟通中常犯的错误
技术
ESLint v9.0.0:回顾与展望 - ESLint - 可插拔的 JavaScript 代码检查工具
ESLint v9.0.0 的发布回顾了其开发历程、成功与挑战,并总结了关键经验教训。尽管新配置系统经过五年开发并提供了详细文档,但发布初期仍面临用户负面反馈和生态适配缓慢的问题。团队通过工具开发和错误信息优化逐步改善了升级体验,并认识到未来应减少重大变更的捆绑、优先提供工具支持,并加强生态沟通。
- 🚀 发布概览:ESLint v9.0.0 是近三年来的首个重大版本,主打新配置系统,但发布初期因兼容性问题遭遇用户批评。
- 📅 开发时间线:从 2019 年提案到 2024 年正式发布,历时五年,包含多次测试版迭代和生态适配。
- ✅ 成功之处:
- 📜 首次明确版本支持政策,与 HeroDevs 合作维护旧版。
- 🔧 提供六个月 v8.x 兼容性更新,并优化多分支发布流程。
- 📚 发布全面文档(迁移指南、博客系列),同步更新内容。
- 🛠️ 快速响应问题,推出兼容性工具(如 Config Migrator)。
- ❌ 不足之处:
- 🔄 捆绑过多破坏性变更(如配置系统与规则 API),导致问题定位困难。
- 📖 文档过载但工具不足,用户更倾向直接求助而非阅读指南。
- 🐢 生态适配滞后,插件作者对双配置支持需求未提前预见。
- 🎓 经验总结:
- ⚡ 未来减少重大变更捆绑,采用更频繁的小版本迭代。
- 🔨 优先开发自动化工具(如代码转换器),降低用户升级成本。
- 💡 优化错误提示,直接引导用户至解决方案。
- 🤝 加强生态沟通,探索更有效的协作方式。
- 🌟 未来展望:团队将持续改进发布策略与用户体验,感谢社区反馈。
Next.js 服务器操作是对外公开的 API 端点
Next.js 的 Server Actions 实际上是公开的 API 端点,开发者无需自行创建 API 端点即可通过用户交互执行服务器端代码。尽管官方文档强调了安全性,但缺乏详细示例。本文通过实验展示了 Server Actions 的工作原理及潜在风险。
- 🚀 Server Actions 本质:是公开的 API 端点,开发者无需手动创建 API 即可执行服务器代码。
- 🔍 调用方式:通过 POST 请求和
Next-Action
头调用,端点即触发动作的页面路径。 - 🛠 实验验证:使用
curl
发送请求,成功触发服务器端的console.log
输出。 - 📦 参数传递:参数需可序列化为 JSON,通过请求体传递。
- 🔐 安全隐患:动作 ID 可通过客户端代码暴露,即使有条件渲染也可能泄露。
- 🛡 内置安全:Next.js 提供加密 ID 和死代码消除,但开发者仍需主动添加认证层。
- 📚 结论:Server Actions 应像传统 API 一样严格防护,开发者需深入理解框架抽象。
直接用 React 就完了
这篇文章以激烈幽默的语言,阐述了在现代 Web 开发中使用框架(如 React)的必要性,并批判了过度依赖纯 HTML 和原生 JavaScript 的固执态度。
- 🚀 框架的必要性:现代 Web 应用需要处理复杂交互和动态内容,纯 HTML 已无法满足需求。
- 🔄 组件化开发:框架提供可复用的组件,避免重复代码和维护噩梦。
- ⚡ 智能 UI 更新:框架自动处理 DOM 更新,减少手动操作的繁琐和错误。
- ♿ 可访问性:框架帮助实现复杂的无障碍功能,而纯 HTML 难以规模化。
- 🛠️ 开发者体验:框架生态提供高效工具(如热更新、TypeScript),提升开发效率。
- ⚖️ 性能权衡:框架的“臃肿”是为复杂功能付出的合理代价,可通过优化手段缓解。
- 🤔 适用场景:框架适合有复杂状态管理、团队协作或高交互需求的应用,而非简单静态页面。
- 🔥 核心问题:滥用工具(如用 React 做静态页)是开发者的问题,而非框架本身。
CONCURRENT RENDERING - 并发渲染
React v18 的发布历时 2161 天,是 React 历史上一个被低估但至关重要的转折点。它解决了 JavaScript 在浏览器中单线程处理导致的性能问题,通过引入并发渲染(Concurrent Rendering)和新的 API(如 useDeferredValue 和 startTransition),使 React 能够优先处理高优先级任务(如用户输入),同时推迟低优先级任务(如渲染列表)。这一改进显著提升了应用响应速度,特别是在低端设备上。
- 🚀 React v18 的重要性:尽管初期看似仅针对库作者,但实际上是 React 历史上的关键转折点。
- ⏳ 开发时长:历时 2161 天,解决了 JavaScript 单线程处理的根本问题。
- 🧵 并发渲染:通过区分高优先级和低优先级任务,提升应用响应能力。
- 🔄 useDeferredValue:延迟更新低优先级值,确保高优先级任务优先完成。
- ⚡ startTransition:明确标记可能耗时的状态更新,避免阻塞高优先级事件。
- 🎯 渐进式采用:React v17 和 v18 逐步引入并发功能,减少升级破坏性。
- 🛠️ Hooks 的作用:为并发渲染提供更好的代码兼容性,简化状态管理。
- 📉 实际应用场景:尽管示例多为极端情况,但并发功能在低端设备上效果显著。
- 🔮 未来展望:React v19 进一步扩展了并发功能的实用性和适用范围。
工具
ibelick/prompt-kit: AI 应用核心构建模块。高质量、易用且可自定义的 AI 界面组件。
prompt-kit,提供高质量、可定制化的 AI 应用组件库。
- 🚀 项目核心:为 AI 应用提供核心构建模块,包括聊天界面、AI 代理等组件
- ⚙️ 技术栈:基于 React、Next.js、TailwindCSS 和 shadcn/ui 开发
- 📦 安装方式:需先安装 shadcn/ui,再通过 CLI 添加组件(npx shadcn@latest add prompt-kit/[component])
- 🌟 项目热度:获得 1k 星标,55 个分支,MIT 开源协议
- 🛠️ 主要功能:包含 PromptInput 等可即插即用的 AI 交互组件
- 📄 文档支持:提供详细 README 说明和 prompt-kit.com 官网资源
- 👥 协作情况:5 位贡献者,主要使用 TypeScript(81.3%) 开发
- 🔧 配套工具:包含 ESLint/Prettier 等标准化配置
React Scan - Chrome 应用商店
React Scan 是一款 Chrome 扩展工具,用于自动检测 React 应用的性能问题,无需代码更改,支持多种使用方式,并提供直观的优化提示。
- 🔍 自动检测性能问题:React Scan 能自动发现 React 应用中的性能瓶颈。
- 🛠️ 无需代码更改:直接集成,无需修改现有代码。
- 🎯 精准优化提示:高亮显示需要优化的组件。
- 📦 多方式支持:支持 script 标签、npm、CLI 等多种集成方式。
- ⭐ 高评分:目前评分为 5.0(2 条评价)。
- 🔒 隐私保护:开发者声明不收集或使用用户数据。
- 🌍 多语言支持:目前仅支持英语。
astracompiler/cli: 🚀 快速、可靠且易于使用的 js 转 exe 编译器
Astra 是一个快速、可靠且易于使用的 JavaScript 到可执行文件的编译器,支持将 Node.js 应用编译为独立的可执行文件,特别适用于服务器和 CLI 工具。
- 🚀 项目特点:Astra 是一个新型的 JavaScript/TypeScript 编译器,采用不同于 pkg 或 nexe 的方法。
- ⚡ 性能优势:平均生成的 exe 文件大小为 70-80MB,使用 upx 可压缩至约 30MB。
- 🖥️ 平台支持:目前仅支持 Windows,正在开发 macOS 和 Linux 版本。
- 🔥 快速构建:基于 esbuild,提供最快的编译速度。
- 📦 现代支持:支持最新 Node.js 版本和 ECMAScript 模块(ESM)。
- 🛠️ 开发者体验:集成 signale、inquirer 和 chalk,优化开发流程。
- 📌 独立可执行文件:生成包含所有依赖的单一.exe 或二进制文件。
- 🎨 自定义元数据:可修改生成的 exe 的图标、名称、版本等信息。
zumerlab/snapdom: snapDOM 以超快速度和精准度将 HTML 元素捕获为图像
snapDOM 是一个快速且精准的 DOM 转图像工具,专为 Zumly(基于缩放的视图过渡框架)设计。它能将任何 HTML 元素捕获为可缩放的 SVG 图像,支持多种导出格式和功能。
- 📸 功能全面:支持捕获完整 DOM,包括样式、伪元素、字体和阴影 DOM。
- 🎨 样式保留:内嵌样式、背景图像和字体,确保图像与原始元素一致。
- 🖼️ 多格式导出:支持导出为 SVG、PNG、JPG、WebP 或 Canvas。
- ⚡ 高效快速:无依赖,基于标准 Web API,性能卓越。
- 📦 安装灵活:支持 NPM/Yarn、CDN、本地脚本和 ES 模块导入。
- 🔧 API 丰富:提供多种快捷方法和配置选项,满足不同需求。
- 🚀 预加载支持:通过
preCache()
提前加载外部资源,优化复杂元素的捕获效率。 - ⚠️ 局限性:不支持 iframe,外部图像需 CORS 访问,Safari 上 WebP 会回退为 PNG。
- 📊 性能优势:基准测试显示,snapDOM 比其他库快数倍至上百倍。
kepano/defuddle: 从网页中提取主要内容
Defuddle 是一个用于从网页中提取主要内容的工具,通过移除非必要元素(如评论、侧边栏、页眉页脚等)来生成简洁易读的 HTML 文档。它专为 Obsidian Web Clipper 设计,可作为 Mozilla Readability 的替代方案,并提供更一致的输出格式。
typescript-sdk
Model Context Protocol 服务器和客户端的官方 TypeScript SDK
ioredis
ioredis 是一个高性能、功能丰富的 Node.js Redis 客户端,支持 Redis 2.6.12 及以上版本,完全兼容 Redis 7.x。它被阿里巴巴等大型公司广泛使用,提供了集群、哨兵、流、管道、Lua 脚本等高级功能。虽然维护是尽力而为,但对于新项目,官方推荐使用 node-redis 客户端库。ioredis 提供了友好的 API、透明的键前缀、TLS 支持、离线队列、错误处理策略等特性,并支持 TypeScript。
jellydn/next-validations: NextJS API 验证工具,支持 Zod、Yup、Fastest-Validator、Joi 等
next-validations 是一个支持多种验证库的 NextJS API 验证工具,兼容 Zod、Yup、Fastest-Validator、Joi 等,提供灵活的验证模式和 TypeScript 集成。
- 🏠 项目主页: next-validations.productsway.com/
- ✨ 功能亮点: 支持多种验证库(Zod、Yup、Joi 等),集成 TypeSchema 实现通用适配
- 📦 安装:
yarn add next-validations
- 🔧 使用示例: 支持查询参数(query)、请求体(body)等多模式验证
openapi-ts
🚀 OpenAPI 到 TypeScript 的代码生成。生成客户端、SDK、验证器等
protobuf-es
一个基于 TypeScript 的完整 Protocol Buffers 实现,适用于浏览器和 Node.js 环境。它由 Buf 开发,是目前唯一通过 Protocol Buffers 一致性测试的 JavaScript 库。文章还详细说明了 Protocol Buffers 的核心功能、使用场景、快速入门指南、相关文档、生态工具及许可证信息
更新
next.config.js: reactCompiler | Next.js
Next.js 引入了对 React Compiler 的实验性支持,旨在通过自动优化组件渲染提升性能,减少手动使用 useMemo
和 useCallback
的需求。该功能通过自定义的 SWC 优化实现,仅针对相关文件应用编译器,以保持构建速度。
- 🚀 React Compiler 支持:实验性功能,自动优化组件渲染,提升性能。
- ⚡ 高效构建:通过 SWC 优化仅编译相关文件(如含 JSX 或 Hooks 的文件),减少构建时间影响。
- 📦 安装步骤:需安装
babel-plugin-react-compiler
并在next.config.js
中启用experimental.reactCompiler
。 - 🔧 配置模式:支持“注解模式”(
compilationMode: 'annotation'
),通过'use memo'
或'use no memo'
指令手动标记组件或 Hook。 - ⚠️ 注意事项:当前为实验性功能,不建议用于生产环境,鼓励反馈优化建议。
Chrome 开发者博客 | Chrome 137 版开发者工具的新变化
Chrome 137 开发者工具更新聚焦 AI 集成与性能优化,新增 Gemini 辅助 CSS 修改、性能分析标注、工作区文件夹自动保存功能,并强化可访问性设计。同时预告 Google I/O 2025 将展示更多 DevTools 创新。
- 🚀 Google I/O 2025 亮相:Chrome DevTools 将在大会推出混合直播与录播课程,涵盖新功能演示(5 月 20 日 PT 时间 15:30 起)。
- ✨ Gemini AI 集成:
- 点击即可通过 AI 修改 CSS 并直接保存至工作区源文件(实验性功能)。
- 新增性能洞察聊天功能,分析 LCP 阶段、渲染阻塞请求等关键指标。
- 支持双击性能事件自动生成 AI 标注标签,截图可添加至聊天上下文。
- 🛠️ 工作区增强:
- 自动/手动连接文件夹,实现 JavaScript/HTML/CSS 更改同步至本地源文件。
- 通过源码映射还原压缩代码,支持 Sources 面板 HTML 编辑。
- 📊 性能面板升级:
- 新增“重复 JavaScript”与“遗留 JavaScript”洞察,优化依赖分析与现代浏览器兼容性。
- 规则标签替代 URL 显示(Speculative loads),提升可读性。
- 🔍 Lighthouse 12.6:转向性能洞察审计,报告新增“Try insights”快捷入口。
- ♿ 可访问性改进:
- 快捷键
A
切换全页面无障碍树视图。 - 屏幕阅读器新增操作状态播报(如“复制到剪贴板”)。
- 快捷键
- 📥 预览版通道:推荐开发者使用 Canary/Dev/Beta 版本提前体验最新功能。
微软社区中心宣布:VS Code 中推出全新的 PostgreSQL IDE
微软宣布在 VS Code 中推出全新的 PostgreSQL 扩展公开预览版,旨在简化 PostgreSQL 数据库管理和开发流程。该扩展集成了智能辅助工具和 GitHub Copilot 代理,提升开发效率。
- 🚀 新扩展发布:VS Code 的 PostgreSQL 扩展进入公开预览,集成 IntelliSense 和 GitHub Copilot 代理。
- ⏱️ 解决开发痛点:减少任务切换和调试时间,提供统一开发和管理体验。
- 📊 关键功能:
- 模式可视化:通过右键菜单轻松查看数据库结构。
- AI 辅助:GitHub Copilot 提供实时指导和自然语言交互。
- 简化连接:支持本地和云数据库,集成 Entra ID 认证。
- 数据库资源管理器:管理数据库对象,查看查询历史。
- 🔍 独特优势:
- 提升生产力,简化入门流程,增强安全性,无缝云集成。
- 📥 安装步骤:在 VS Code 扩展市场中搜索并安装 PostgreSQL 扩展。
- 💬 反馈支持:欢迎通过 VS Code 内置工具提交反馈。
- 🔗 了解更多:访问官方文档获取更多信息。
发布 v1.3.0 · unnoq/orpc · GitHub
oRPC 发布了 v1.3.0 版本,新增多项功能与改进,包括消息端口适配器、NestJS 集成、多成功响应支持等,并修复了一些错误。
- 🚀 消息端口适配器 - 支持窗口、标签页、进程间的通信,提供 Electron、浏览器扩展和 Worker Threads 的集成指南。
- 🏗 NestJS 集成 - 可直接在 NestJS 控制器中实现 oRPC 合约。
- 📊 多成功响应支持 - 使用
detailed
结构定义多个成功响应状态。 - 🔄 TanStack 流式查询支持 - 新增
.streamedOptions
方法,支持在 TanStack Query 中使用 oRPC 事件迭代器。 - 🛠 实用工具新增 - 提供
parseFormData
和getIssueMessage
工具函数,简化表单数据处理。 - 🐞 错误修复 - 包括依赖更新、查询兼容性改进和空 body 解析行为统一。
设计
构建实用的用户体验策略框架
用户体验(UX)战略框架的创建与实施,旨在将 UX 团队从被动执行者转变为业务价值的主动驱动者。通过明确诊断现状、制定指导政策及具体行动计划,团队可提升影响力并实现可衡量的成果。
- 🔍 诊断现状:识别当前用户体验中的问题,如低效流程或用户满意度下降,并将其与业务指标(如收入损失)关联。
- 🗺️ 绘制理想体验:通过对比当前与理想用户旅程图,明确改进方向,例如统一多渠道支持系统以提升效率。
- 📊 资源与约束评估:盘点团队技能、预算及组织影响力,同时承认技术或政策限制,制定务实策略。
- 🧭 指导政策:选择战术(嵌入项目)或战略(中心化指导)模式,定义优先级排序方法(如影响 - 努力 - 风险评分)。
- 📚 创建标准化手册:包含设计原则、操作流程及模板(如无障碍标准、用户访谈指南),确保知识传承。
- 📢 沟通计划:利用 RACI 矩阵明确责任分工,定期通过邮件、演示等渠道同步进展,保持透明度。
- 🛠️ 行动计划:列出关键项目(如设计系统开发)、提供培训工具,并分配利益相关者角色(如高管支持者)。
- ⚠️ 风险管理:预判阻碍(如招聘冻结),制定应对方案(转向战略合作或加强沟通)。
- 🌱 文化渗透:通过分享会、实体展示(用户画像)和流程嵌入,推动全组织关注用户体验。
- 💪 持续执行:引用丘吉尔名言强调韧性——成功需在挫折中保持热情,将战略转化为长期实践。
AI
VS Code:开源人工智能编辑器
VS Code 团队宣布将 GitHub Copilot Chat 扩展的代码开源,并逐步将其核心 AI 功能整合到 VS Code 中,以推动其成为开源 AI 编辑器。此举旨在保持透明性、促进社区协作,并适应 AI 开发工具的快速演变。
- 🚀 开源 AI 编辑器计划:将 GitHub Copilot Chat 扩展以 MIT 许可证开源,并重构其核心功能至 VS Code。
- 🔍 开源动机:AI 技术成熟、UI 模式趋同、生态扩展需求及数据透明度推动决策。
- 🛡️ 安全与透明:开源帮助快速发现安全漏洞,并公开数据收集细节。
- 🔧 后续步骤:开源代码库、重构 AI 功能至核心,并开放提示测试基础设施。
- 🌍 社区协作:鼓励开发者参与贡献,通过迭代计划和 FAQ 同步进展。
- 💡 愿景重申:坚持开放、协作原则,打造未来 AI 驱动的开发工具。
介绍 Claude 4 \ Anthropic
Anthropic 发布了新一代 Claude 模型 Claude 4,包括 Claude Opus 4 和 Claude Sonnet 4,在编码、高级推理和 AI 代理方面设定了新标准。
- 🚀 Claude Opus 4:全球最佳编码模型,在复杂、长时间运行的任务和代理工作流中表现卓越,支持持续数小时的工作。
- 🔍 Claude Sonnet 4:Claude Sonnet 3.7 的升级版,编码和推理能力显著提升,响应更精准。
- 🛠️ 新功能:支持工具使用(如网络搜索)、并行工具执行、更精准的指令跟随,以及通过本地文件访问提升记忆能力。
- 💻 Claude Code 正式发布:支持 GitHub Actions、VS Code 和 JetBrains 集成,提供无缝配对编程体验。
- 🔧 API 新能力:新增代码执行工具、MCP 连接器、Files API 和提示缓存功能,助力开发者构建更强大的 AI 代理。
- 💰 定价:Opus 4 为 15/75 美元每百万 token(输入/输出),Sonnet 4 为 3/15 美元,免费用户也可使用 Sonnet 4。
- 📊 性能领先:Opus 4 在 SWE-bench(72.5%)和 Terminal-bench(43.2%)上表现优异,Sonnet 4 在 SWE-bench 上达到 72.7%。
- 🧠 记忆能力:Opus 4 通过创建“记忆文件”显著提升长期任务意识和连贯性。
- 📝 思维摘要:引入小模型总结冗长思维过程,仅需 5% 的情况使用。
- 🔒 安全性:通过测试和评估确保安全性,实施 ASL-3 等更高级别的 AI 安全措施。
这些模型为编码、研究、写作和科学发现等领域带来突破,同时提升日常使用场景的性能。
其他
加尔定律经常被引用:"一个有效的复杂系统,总是从一个有效的简单系统进化而来。"
但是,它的推论很少被引用:"一个从零开始设计的复杂系统永远不会有效,你必须从一个可以运行的简单系统开始。"
-- Stack Staves
工程师在沟通中常犯的错误
工程师在沟通中常犯的错误及改进方法
- 🎯 忽视用户需求:工程师容易陷入技术细节,而忽略解决用户最痛点和最有价值的问题。应确保沟通始终围绕用户问题或用户体验展开。
- 🐿️ 信息囤积(松鼠模式):囤积信息会导致沟通障碍、重复工作和信任缺失。解决方案是公开记录信息并默认共享,避免私密沟通。
- 💡 缺乏明确观点:模糊或未经深思熟虑的意见容易被忽视。应通过证据支持观点,并自信地表达,避免模棱两可的陈述。
- 📊 缺少上下文:低上下文的沟通会增加接收者的负担。应包含数据、用户反馈和问题背景,帮助对方快速理解并采取行动。
- 🏗️ 缺乏结构化沟通:过度或不足的沟通都会影响效率。通过固定仪式(如周会、冲刺计划)确保信息有序流动,避免混乱或阻塞。
- 🚀 沟通缺乏行动导向:避免冗长流程,明确责任人、下一步和截止时间,确保沟通直接推动进展,而非空谈。