Published on

2026-第二十二周

Authors

该周报主要为各个地方内容的汇总整理

技术

使用 SlimToolkit 一条命令缩小你的 Python 容器

本文介绍了如何使用 SlimToolkit 压缩 Docker 镜像,通过分析运行时实际使用的文件来创建最小化镜像,将 Chainlit 聊天机器人镜像从 308MB 减少到 163MB。

  • 📦 SlimToolkit 核心原理:通过静态分析和动态分析两步,识别容器运行时实际使用的文件,移除未使用的 OS 层和工具,构建最小化镜像
  • 🐍 构建 Chainlit 聊天机器人:使用 Python 3.11-slim 基础镜像,包含 Chainlit 和 OpenAI SDK 依赖,初始镜像约 308MB
  • 🔍 默认压缩过程:使用slim build命令,通过默认 GET 请求探测,将镜像压缩至 123MB(约 2.5 倍缩小)
  • ⚠️ 探测覆盖问题:默认探测仅加载 UI 外壳,未触发聊天消息,导致 OpenAI 子模块等文件被错误移除,引发启动错误
  • 🛠️ 指定路径保留:使用--include-path参数保留 Chainlit 完整包目录(/usr/local/lib/python3.11/site-packages/chainlit),修复启动问题
  • 📊 最终压缩结果:完整压缩后镜像大小为 163MB(从 308MB 减少),保留所有必要功能组件
  • 🔬 xray 分析工具:使用slim xray生成 JSON 报告,对比显示最大节省来自 Debian 基础镜像(perl、bash、apt 库等),而非 Python 包
  • 💡 实用技巧:通过--continue-after enter参数延长探测时间,允许手动操作让工具捕获更多运行时文件依赖

使用 AI 更慢地编写更好的代码 | 阅读茶叶

本文主张,AI 编程的真正价值不在于快速生成大量低质量代码,而在于用它来更慢、更高质量地编写代码。

  • 🤖 AI 是高效找 Bug 工具:LLM 代理非常擅长发现代码库中的漏洞,从关键安全错误到微小误导性注释,远超“快速生成代码”的单一用途。
  • 🕵️ 多模型交叉审查:通过同时运行多个不同 AI 模型(如 Claude、Codex、Cursor Bugbot)审查 PR,能有效减少幻觉和误报,提高审查可靠性。
  • 🎯 工作流:优先修复关键 Bug:典型流程是让 AI 代理优先修复关键和高危 Bug,跳过收益不高的中低风险问题,甚至放弃有根本性错误的 PR。
  • 🧹 发现并修复既有问题:这种慢速审查常会挖出代码库中已有的 Bug,引发“支线任务”,虽降低原始速度,但显著提升代码库整体健康度。
  • 📚 加深代码理解:通过让 AI 解释 PR 工作原理、生成文档(如 Mermaid 图表),开发者能更深入理解复杂架构及其失败模式,而非只关注“快乐路径”。
  • 🛠️ 适用场景与争议:该方法要求开发者具备足够领域知识来筛选 AI 报告;对资深开发者误报率极低,但对新手可能造成信息过载。
  • 💡 反对“快速生成”文化:作者呼吁“慢速编码”,认为这种注重质量、方法论的风格,比追求原始代码行数的“10 倍效率”更具长期价值。

你的 Node.js 流没有进行背压处理,它们正在悄悄吞噬你的内存。——前端大师博客

Node.js 流式处理若不正确处理背压,会默默消耗内存直至进程崩溃,而许多开发者对此毫无察觉。

  • 📉 背压是协作协议,但 .write() 返回 false 时常被忽略,导致内存无限增长
  • 🛑 highWaterMark 并非内存限制,仅是建议阈值,忽略 false 会持续缓冲直到堆溢出
  • ⚠️ Node.js 22 将默认 highWaterMark 从 16KB 提升至 64KB,加剧了内存压力
  • 🧩 objectModehighWaterMark 按对象计数(默认 16),大对象可导致数 GB 缓冲
  • 🔄 Transform 流有独立读写侧缓冲,易形成“手风琴效应”掩盖内存问题
  • .pipe() 不传播错误,链中异常会导致资源泄漏,应改用 pipeline()
  • async/await 仅控制读取节奏,写入仍需检查 false 并等待 drain 事件
  • 📡 data 事件监听器会启用流动模式,完全绕过背压保护
  • 🧠 修复内存泄漏可能暴露连接池饥饿问题,需配合查询超时和专用工作池
  • ✅ 正确做法:检查 .write() 返回值、使用 pipeline()、显式配置 highWaterMark

Linear 为何如此之快?技术解析

Linear 通过将数据库置于浏览器、本地优先同步、激进代码拆分和键盘优先设计,实现了毫秒级的响应速度,其核心是消除网络延迟对用户体验的影响。

  • 🚀 浏览器即数据库:UI 直接从 IndexedDB 读取数据,本地修改后异步同步到服务器,彻底消除网络等待。
  • 即时首屏加载:通过模块预加载、Service Worker 缓存、内联关键 CSS/JS 和字体优化,实现秒级启动。
  • 🔄 同步引擎三支柱:本地数据立即可用、乐观更新无需等待网络、细粒度响应式更新(仅重绘变更的单元格)。
  • 🎯 键盘优先设计:所有操作支持快捷键,全局命令面板(⌘K)基于本地内存搜索,无需网络请求。
  • 🖌️ 克制动画:仅对 GPU 加速属性(transform/opacity)进行动画,持续时间控制在 100ms 内,避免布局抖动。
  • 🧩 极简技术栈:React + MobX + TypeScript + Postgres,无 SSR/边缘数据库等复杂架构,专注客户端渲染优化。
  • 🔐 乐观认证:假设用户已登录,直接渲染本地数据,后台异步验证会话有效性。
  • 📦 极致代码拆分:每个 npm 包独立分块,按需加载,支持离线使用。

TanStack 路由器和查询

TanStack Router 和 TanStack Query 的整合指南,探讨如何结合两者优势进行数据管理。

  • 🔗 路由器缓存 vs 查询缓存:路由器缓存适用于路由专属数据,但全局数据需用 TanStack Query 的全局查询缓存,通过唯一 queryKey 跨路由共享。
  • 🚀 在加载器中使用查询:在路由加载器中调用 queryClient.ensureQueryDataprefetchQuery 可提前启动数据获取,确保组件渲染时数据已就绪,避免瀑布请求。
  • ⚙️ 配置要点:需将 QueryClient 添加到路由器上下文,并设置 defaultPreloadStaleTime: 0 关闭路由器内建缓存,避免缓存冲突。
  • 🧩 选择 useSuspenseQuery 或 useQueryuseSuspenseQuery 与路由器的 Suspense 边界完美整合,适合阻塞数据;useQuery 用于非阻塞数据,可显示内联骨架加载器。
  • 加载器中的 await 决策:不 await 加载器中的查询,可将阻塞/非阻塞决策交给组件;useSuspenseQuery 自动处理阻塞,useQuery 处理延迟数据。
  • 🌐 SSR 支持:使用 TanStack Start 时,setupRouterSsrQueryIntegration 自动将服务器数据流传输到客户端缓存;useSuspenseQuery 支持流式 SSR,无需额外 await
  • 🛑 避免使用 useLoaderData:查询需通过 useQueryuseSuspenseQuery 创建观察者,否则无法自动重新获取、无效化后不更新,且可能被垃圾回收。
  • 🎯 将加载器视为事件处理器:加载器仅用于触发数据预取,不返回数据;组件始终依赖 use(Suspense)Query,确保查询活跃并获得完整功能。

CSS 与 JavaScript • Josh W. Comeau

本文探讨了 CSS 与 JavaScript 动画的性能差异,并提供了选择合适工具的建议。

  • 🎯 核心结论:CSS 动画因运行在独立线程而更流畅,不受主线程阻塞影响;JS 动画需与主线程任务竞争资源,可能导致卡顿。
  • 性能对比:CSS 关键帧动画和 Motion 库(基于 Web Animations API)能避免主线程干扰,而原生 JS 循环和 GSAP 则可能因主线程繁忙而卡顿或不同步。
  • 🔄 同步问题:JS 动画(如 GSAP)在帧延迟后可能无法保持与时间轴同步,而 CSS 动画能自动修正位置,确保时长一致。
  • 📦 库的权衡:JS 动画库(如 Motion 48kB、GSAP 27kB)需额外下载,但 Motion 通过 WAAPI 实现线程分离,GSAP 则优先流畅性而非同步。
  • 🛠️ 选择建议:优先使用原生 CSS 动画;复杂场景选 Motion 等扩展性库;避免仅封装 CSS 功能的库(如基本过渡库),因其增加负担而无实质优势。
  • 🌟 现代 CSS 能力:View Transitions、linear()、Animation Timeline 等新 API 已减少对 JS 库的依赖,适合多数动画需求。

工具

pip-it-up — 现代文档画中画工具包

这是一个用于将任何 UI 组件弹出为画中画窗口的库,支持零配置、自动调整大小和框架无关的核心。

  • 🖼️ 核心功能:通过PipWrapperPipTrigger组件,轻松将任意 UI 组件弹出为浮动画中画窗口,保留内容和光标状态。
  • 🔄 实时样式同步:使用MutationObserver实时同步样式、主题和 CSS-in-JS 变更,确保弹出窗口样式一致。
  • 🎮 多种 DOM 策略:支持移动、克隆和传送门三种模式,移动模式保留状态,传送门保持组件树完整。
  • 📏 自动调整与响应式:窗口自动适应内容大小,支持isInsidePip属性实现响应式画中画布局。
  • ⌨️ 键盘转发:Cmd+S、Cmd+K 等快捷键在画中画窗口中正常工作,提升编辑体验。
  • 🌐 优雅降级:Firefox 和 Safari 回退到新标签页或自定义处理程序(如模态框),兼容性良好。
  • 🛡️ SSR 安全:无缝支持 Next.js、Remix 和 Vite,无 hydration 不匹配问题。
  • 🔗 解耦触发器:通过命名注册表,任何触发器可连接任意包装器,无需共享上下文。
  • 📝 TypeScript 优先:提供泛型类型钩子、完整 IntelliSense,无需类型转换。
  • 🧩 编辑器支持:与 Tiptap、Monaco、CodeMirror 等编辑器完美集成,保留状态和撤销历史。
  • 📊 浏览器支持:基于文档画中画 API,Chrome/Edge 116+ 完全支持,Firefox/Safari 回退,需 HTTPS 和用户手势。
  • 🚀 路线图:计划支持视频/Canvas 画中画、Vue/Svelte/Angular 绑定,以及 v1.0 稳定版发布。

aimock

🧪 概述:该工具提供一个统一的模拟服务器,用于测试 AI 应用中的所有外部依赖,包括 LLM API、多媒体生成、搜索、数据库和代理协议等。

  • 🤖 核心功能:模拟 14 种 LLM 提供商(OpenAI、Claude、Gemini 等)、多媒体 API(图像/音频/视频生成)、MCP 工具、A2A 代理协议、向量数据库和搜索服务,全部通过一个无依赖的包实现
  • 🚀 快速启动:通过npm install @copilotkit/aimock安装,使用LLMock类创建模拟服务器,设置环境变量后即可运行测试,无需真实 API 密钥
  • ⏺️ 记录与回放:支持代理真实 API 并保存为固定数据集,可精确回放时间戳和帧率,支持多轮对话和自定义匹配规则
  • 🧪 混沌测试:可模拟 500 错误、格式错误 JSON、流中断等异常情况,通过X-AIMock-Strict头控制严格模式
  • 🛠️ 丰富的工具套件:包括 LLMock、MCPMock、A2AMock、AGUIMock 和 VectorMock,覆盖 AI 应用所有交互协议
  • 🔧 灵活部署:支持 CLI、Docker、Helm chart 和 GitHub Action,提供 Vitest/Jest 插件实现零配置集成
  • 📊 可观测性:内置 Prometheus 指标、速率限制头,支持流式使用数据块和响应覆盖功能
  • 🔗 远程配置:可通过 HTTPS URL 加载固定数据集,支持缓存和 SSRF 防护,重复执行时保持一致性

docx-editor

这是一个面向 React 和 Vue 的开源 WYSIWYG .docx 编辑器,支持规范的 OOXML 格式、修订追踪和实时协作,并具备 AI 代理集成能力。

  • 📦 多框架支持 — 提供 React、Vue 3 和 Nuxt 3/4 的适配器包,兼容现代前端生态
  • ⚙️ 核心架构灵活 — 框架无关的核心包(@eigenpal/docx-editor-core)可独立用于定制适配器,自动获取解析与渲染更新
  • 🧩 插件系统完善 — 通过 PluginHost 组件集成插件(如 templatePlugin),支持扩展编辑功能
  • 🤖 AI 代理集成 — 提供 Agent SDK、MCP 服务器和 AI SDK 适配器,支持实时协作和智能交互
  • 🌐 国际化支持 — 支持英文、德文、波兰文、葡萄牙文、土耳其文、希伯来文和简体中文,可贡献翻译
  • 🚀 快速启动示例 — 提供 React、Vue、Nuxt 等多种框架的代码示例和开发环境配置指令
  • 🔧 开发友好 — 使用 Bun 工具链,支持本地开发、类型检查,并提供实时预览部署(latest.docx-editor.dev)

Helmet.js

Helmet 是一个用于保护 Node/Express 应用安全的中间件,通过设置 HTTP 响应头来增强安全性,易于集成且维护成本低。

  • 🛡️ 快速集成:只需 app.use(helmet()) 即可默认设置 13 个 HTTP 响应头,支持独立 Node.js 或其他框架。
  • ⚙️ 灵活配置:可禁用特定头(如 contentSecurityPolicy: false)或自定义配置(如通过 directives 对象设置 CSP 规则)。
  • 🔒 Content-Security-Policy:默认策略防止 XSS 等攻击,支持自定义指令(如 script-src),可启用 reportOnly 模式,并建议在开发时禁用 upgrade-insecure-requests
  • 🌐 跨域安全头:包括 Cross-Origin-Embedder-Policy(默认不设置)、Cross-Origin-Opener-Policy(默认 same-origin)和 Cross-Origin-Resource-Policy(默认 same-origin),用于隔离页面和资源。
  • 🚀 传输与隐私Strict-Transport-Security(默认强制 HTTPS)、Referrer-Policy(默认 no-referrer)和 X-DNS-Prefetch-Control(默认关闭预取),提升安全与隐私。
  • 🛑 旧浏览器兼容X-Frame-Options(防点击劫持)、X-Content-Type-Options(防 MIME 嗅探)和 X-XSS-Protection(默认禁用有缺陷的过滤器)。
  • 📦 其他安全头Origin-Agent-Cluster(隔离进程)、X-Download-Options(IE 安全)、X-Permitted-Cross-Domain-Policies(Adobe 策略)和移除 X-Powered-By(节省带宽)。
  • 🔧 独立使用:每个头均可作为独立中间件(如 helmet.contentSecurityPolicy()),方便按需集成。

Flue — 代理框架工具

Flue 是一个可编程的 TypeScript 框架,用于构建自主代理和 AI 工作流,提供模型、工具、技能、文件系统和沙箱等核心组件。

  • 🤖 核心架构:代理 = 模型 + 工具集,支持规划、上下文收集、文件操作、子代理和专家委派。
  • 🛠️ 可编程 Harness:TypeScript 框架为任何模型提供会话、工具、技能、文件系统访问和安全工作环境。
  • 📂 文件系统访问:支持读取、写入、grep 和 glob 操作,让代理能处理真实文件。
  • 🔒 沙箱环境:提供 bash 执行、安全控制和网络访问,确保代理操作安全可控。
  • 🧠 技能与记忆:可加载可重用的专业知识和工作流,支持会话记忆和上下文保持。
  • 🔄 工作流自动化:运行结构化自动化,从清晰输入到完成结果,代码引导代理推理。
  • 🧩 子代理与工具:定义专业角色,委派任务;提供类型化工具用于 API 调用、数据查询和受控变更。
  • 🌐 MCP 服务器集成:通过开放模型上下文协议连接认证工具和服务。
  • 📊 可观测性:监控代理并导出追踪到 OpenTelemetry、Braintrust、Sentry 等。
  • 💬 聊天集成:连接 Slack、Teams、Discord、GitHub 等平台,让代理在协作环境中工作。
  • 🚀 部署灵活:支持 Node.js、Cloudflare Workers、GitHub Actions、GitLab CI/CD 等环境。

chartli

chartli 是一个 CLI 工具,能将纯文字数字数据转换为终端机图表(如 ASCII、长条图、热力图、SVG 等),支持多种图表类型与灵活的标签设定。

  • 🚀 快速安装与使用:可通过 npx chartli --help 即时执行,或全局安装 npm i -g chartli,也支持代理技能安装 npx skills add ahmadawais/chartli
  • 📊 多种图表类型:支持 ascii、spark、bars、columns、heatmap、unicode、braille、svg 等格式,满足不同数据可视化需求
  • ⚙️ 丰富的选项参数:可自定义图表宽高、类型、模式(SVG 支持 circles/lines),以及 x/y 轴标题、刻度标签、系列标签等
  • 🏷️ 标签与元数据功能:通过 --x-axis-label--y-axis-label 添加轴标题,--x-labels 设定刻度标签,--series-labels 自定义系列名称,--data-labels 显示原始数值
  • 📂 示例数据与指令:提供多个示例数据文件(如 weekly-signups.txt),并展示完整指令组合,例如 pnpm chartli examples/assets/core-single-series.txt -t ascii -w 24 -h 8
  • 🖼️ 图像图表集:支持将同一数据集以不同图表类型呈现,包括 ASCII 线图、Sparklines、水平长条图、直式长条图、热力图、Unicode 长条图、点字图与 SVG
  • 📄 SVG 输出:可将图表输出为 SVG 文件,适用于文档或网页嵌入,例如 pnpm chartli examples/assets/image-data.txt -t svg -m lines -w 320 -h 120
  • 👀 标签化图表示例:展示如何结合 --first-column-x 与资料标签,生成更清晰、具备自动轴标题和刻度标签的图表

GitHub - eslint/css: ESLint 的 CSS 语言插件

ESLint CSS 语言插件允许使用 ESLint 原生检查 CSS 文件,需要 ESLint v9.15.0+ 和新配置系统。

  • 📦 安装方式多样:支持 npm/yarn/pnpm/bun 安装 @eslint/css,Deno 用户可用 jsr:@eslint/css 实验性安装。
  • ⚙️ 配置简洁:在 eslint.config.js 中导入插件并设置 language: "css/css",可使用 recommended 配置启用推荐规则。
  • 🛡️ 规则丰富:提供 14 条规则,包括 no-empty-blocksno-importantno-invalid-properties 等,支持注释内单独配置。
  • 🌐 语言支持:内置 CSS 解析器,支持严格模式和宽容模式(tolerant: true),兼容 PostCSS 等自定义语法。
  • 🔧 自定义语法:通过 customSyntax 选项可扩展 CSS 语法,支持对象或函数形式,并专门提供 Tailwind CSS 配置方案。
  • 💻 编辑器集成:支持 VS Code 和 JetBrains WebStorm,需配置 eslint.validate 包含 css 文件。

GitHub - KurtGokhan/tegaki: 网页手写动画。支持任意字体或文字。

Tegaki(手書き)是一个能将任何字体转换为手写动画的开源工具,无需手动路径编辑或原生依赖,只需选择字体即可使用。

  • 🎨 一键手写动画:支持任何字体,文字会以自然笔顺逐笔绘制,无需手动设定路径
  • 🚀 快速安装与使用:通过 npm install tegaki 安装,React 示例只需几行代码即可执行
  • 🔧 多框架支持:兼容 React、Svelte、Vue、SolidJS、Astro、Vanilla JS 及 Web Components
  • 📦 内置多种字体:包含 Caveat、Italianno、Klee One 等七种手写字体,涵盖拉丁、希伯来、阿拉伯、天城文及日文
  • 🌐 完整文档与整合:提供详细指南、API 参考,并可整合 Sli.dev 简报与 Remotion 视频

更新

acdlite 在客户端预取应用外壳 · 拉取请求 #93999 · vercel/next.js · GitHub

此 PR 在 Next.js 客户端实现了 App Shell 预取机制,确保用户导航时能立即渲染路由外壳,无需等待具体参数的预取完成。

  • 🚀 核心目标:实现“点击即渲染”的导航体验,即使目标路由的具体预取尚未完成,也能立即显示路由的 App Shell,消除阻塞导航。
  • 🧩 关键机制:引入新的 Shell 预取阶段,为每个路由(而非每个链接)发起一次外壳请求。同一路由下多个链接共享同一个外壳请求,大幅减少网络请求量。
  • 🗂️ 缓存优化:导航时采用“两遍查找”策略,优先使用任何已完成的条目(包括较不具体的外壳),而非阻塞于正在进行的更具体预取请求。
  • 🎯 适用范围:当前仅针对运行时(PPRRuntime)预取路径。静态(PPR)路径将采用不同的策略(将单个响应拆分为外壳前缀和具体后缀),将在后续 PR 中实现。
  • ⚙️ 配置开关:该功能通过 experimental.appShells 标志控制。

高级树计数:使用 sibling-index() 和 sibling-count() 的数学布局 — Smashing Magazine

本文介绍了 CSS 中新增的sibling-index()sibling-count()函数,它们允许开发者直接在样式表中获取元素的兄弟索引和兄弟总数,从而无需 JavaScript 或复杂的:nth-child()规则即可实现动态布局和动画效果。

  • 🎯 核心功能sibling-index()返回元素在父级中的位置(从 1 开始),sibling-count()返回父级元素总数,两者均为整数类型,可直接用于calc()等数学函数。
  • 动画简化:一行代码即可实现交错动画效果,如animation-delay: calc(sibling-index() * 100ms),无需为每个元素单独编写规则。
  • 🔄 动态布局:可自动计算等宽宽度(width: calc(100% / sibling-count()))、均匀色相分布、圆形菜单布局等,元素增删时自动调整。
  • ⚠️ 注意事项:Shadow DOM 中只计算影子树内的元素;display: none的元素仍会计入索引;自定义属性需直接应用于目标元素而非父级;大规模 DOM 变更可能影响性能。
  • 🌐 浏览器支持:Chrome/Edge 138 和 Safari 26.2 已支持,Firefox 尚未稳定支持,建议使用@supports实现渐进增强。
  • 可访问性:这些函数仅影响视觉呈现,屏幕阅读器和键盘导航仍遵循 DOM 顺序,需要额外使用 JavaScript 同步 ARIA 属性。
  • 🚀 未来展望:CSSWG 正在讨论增加of <selector>参数(类似:nth-child()的筛选功能)以及children-count()descendant-count()等新函数。

其他

AI 辅助的工程师正在精疲力竭,这真的没问题吗?——火星编年史,邪恶火星人团队博客

AI 辅助工程师正在经历新型职业倦怠,这种倦怠源于认知过载、工作强度激增和成就感缺失的恶性循环。文章分析了 AI 工具如何改变工作本质,并提出可持续使用 AI 的实践建议。

  • 🔥 新型倦怠现象:AI 辅助编程导致高强度认知负荷,开发者每天仅能维持 4-5 小时高效工作,之后大脑完全疲劳
  • 效率陷阱:AI 看似提升 2 倍速度,但实际将工作强度提升至传统编程的 2 倍,且剥夺了自然休息时间
  • 🧠 认知债务:开发者失去对代码库的直觉理解,从创作者退化为监督者,监督自己不懂的系统极其消耗精力
  • 💔 成就感流失:AI 生成代码取代了编程中"规划→创作→成果"的愉悦过程,导致工作满足感大幅降低
  • 🎭 隐性职业转型:工程师角色悄然转变为 AI 协调员,但职位名称未变,造成身份认知冲突
  • 📉 虚假期望陷阱:AI 带来的初始高效会形成不切实际的基准线,当效率回落时产生巨大压力
  • 🔄 审查瓶颈:AI 生成代码量远超人工审查能力,高级工程师被迫承担不成比例的风险和认知负荷
  • 🛠️ 可持续方案:记录每日成就、规划 AI 使用时段、保留纯手工编码时间、严格执行工作边界、探索新技能领域

关于直言不讳的反馈

直接反馈可能改变人生,但其价值取决于给予者的意图和判断力。在职场中,这种反馈常被滥用或误用,尤其对高水平人才而言,盲目接受可能有害。

  • 🎯 意图决定性质:直接反馈可能被用作操纵工具或发泄恶意,尤其在有毒环境中,反馈的真正观众是幕后渠道,目的是给你贴标签。
  • 🧠 判断力决定准确性:即使意图良好,若给予者在特定领域缺乏高超判断力,其反馈可能错误,尤其当接收者水平高于给予者时。
  • 🚫 高水平者需谨慎:对于已处于顶尖水平(如前 10%)的人,盲目接受“反馈是礼物”的建议可能有害,需要自信地忽略或调整反馈。
  • 🔍 幕后策略的威力:在绩效评估中,人们因忙碌和偏见,容易相信贴标签式的反馈,这强化了错误认知(如“执行强则策略弱”)。
  • 💡 罕见但有用的建议:对多数人而言,开放接受反馈是好的;但对高阶人才,选择性忽略或调整反馈才是更明智的策略。