- Published on
2025-第五十一周
- Authors

- Name
- AgedCoffee
- @__middle__child
该周报主要为各个地方内容的汇总整理
- 技术
- 宣布适用于 VS Code 的 JavaScript/TypeScript 现代化工具 - Microsoft 开发者平台
- TypeScript 类型作为一种编程语言
- React 中 useEffectEvent 的注意事项
- 使用 Prisma 管理 Next.js Monorepo | AppSignal 博客
- 我未能用 Claude 重现 1996 年《空中大灌篮》网站 | j0nah.com
- 工具
- lina
- GitHub - mutativejs/travels:一个由Mutative JSON Patch 驱动的快速、框架无关的撤销/重做核心
- Vercel 发布新 npm 包:自动修复流式 Markdown 中断问题
- GitHub - filipsobol/sonda:适用于JavaScript和CSS的通用可视化工具与分析器。兼容多数打包工具和框架。
- GitHub - platformatic/kafka
- 更新
- Python-Node:现已支持流式传输与 WebSocket
- 发布 6.1.0 版本 · ant-design/ant-design · GitHub
- TypeScript 7 进展 - 2025 年 12 月 - TypeScript
- 设计
- 2026 年构建设计系统
- AI
- beads
- Manage Claude's memory
- ten-framework
- 其他
- 前端十大戒律 | Felipe Gustavo 的博客
- 当林纳斯遇见林纳斯:托瓦兹与 LTT 对话的洞见
技术
宣布适用于 VS Code 的 JavaScript/TypeScript 现代化工具 - Microsoft 开发者平台
微软宣布推出适用于 VS Code 的 JavaScript/TypeScript 现代化工具,这是一款 AI 辅助工具,旨在帮助开发者自动化升级 npm 包和更新代码,以简化项目现代化过程。
- 🚀 工具发布:推出 VS Code 扩展“JavaScript/TypeScript Modernizer”,利用 GitHub Copilot 自动化升级 JS/TS 项目依赖和代码。
- 🤖 AI 驱动:通过 Copilot Chat 交互式指导,自动分析项目、升级 npm 包至最新版本,并适配代码变更。
- ⚙️ 使用条件:需预先安装 Node.js/npm、启用 GitHub Copilot,并安装预览版扩展后手动开启实验性设置。
- 📦 操作流程:在 VS Code 中打开项目,通过扩展面板启动升级,跟随 Copilot 提示完成包更新和代码调整。
- ⚠️ 预览限制:目前仅支持单项目升级,且为预览功能,可能遇到复杂场景兼容性问题。
TypeScript 类型作为一种编程语言
本文探讨了将 TypeScript 类型系统视为一门编程语言,通过类比编程概念(如函数、条件、变量和循环)来构建高级泛型类型,以提升代码的通用性和类型安全性。
- 🧩 泛型类型如同函数:可定义依赖其他类型的类型,通过输入类型产生输出类型,支持类型约束和默认值。
- 🔗 条件类型实现分支逻辑:使用
extends关键字和三元语法进行类型条件判断,例如从事件类型中提取特定字段。 - 🔍 infer 关键字用于类型提取:允许在类型定义中创建变量,支持解构,简化复杂类型的推导过程。
- 🔄 递归类型处理循环结构:类型可调用自身,适用于树形数据或数组遍历,如实现查找特定类型的
Find工具。 - 📝 模板字面量类型操作字符串:支持字符串拼接和复杂操作(如移除空格),可用于生成方法名等场景。
- 🗺️ 映射类型迭代对象属性:结合
keyof和in关键字,可转换对象属性,例如将方法返回类型包装为 Promise。 - 🛠️ 实用工具类型增强灵活性:如
ReturnType和Parameters,可提取函数返回类型和参数类型,支持更动态的类型定义。 - 🎯 实际应用提升代码质量:通过 CRUD 生成器、中间件结果类型推断等示例,展示如何减少重复代码并增强编译时错误检测。
React 中 useEffectEvent 的注意事项
useEffectEvent 是一个实验性的 React Hook,用于从 Effect 中提取非响应式逻辑,允许在 Effect 内读取最新的 props 或 state 值,而不会因这些值的变化导致 Effect 重新执行。
- 🧩 解决核心问题:在 Effect 中读取最新值但避免不必要的重新运行,例如聊天室应用中记录房间切换时包含当前主题,而主题变化时不触发 Effect 重新执行。
- ✅ 正确用法:在 Effect 内直接调用、用于读取最新 props/state 而不添加依赖、分离响应式与非响应式逻辑、同步调用。
- ❌ 错误用法:在常规事件处理器或渲染中调用、作为 prop 传递、异步调用、替代正确的记忆化。
- 📊 常见用例:日志记录与数据分析、使用最新状态的回调、基于最新值的防抖处理。
- ⚠️ 注意事项:仅用于真实需求,保持函数目的单一,等待稳定版再用于生产,优先考虑逻辑重构。
使用 Prisma 管理 Next.js Monorepo | AppSignal 博客
本文介绍了如何在 Next.js 单仓库(monorepo)中集成 Prisma 来构建一个披萨订购应用,涵盖项目初始化、Prisma 配置、数据库查询和订单管理的完整流程。
- 🚀 使用 Next.js 和 Prisma 在单仓库中构建全栈应用,实现前后端类型与逻辑共享
- 🛠️ 通过 Prisma 初始化数据库模型(用户、订单、订单项、披萨)并运行迁移
- 🌱 配置种子脚本预填充数据库数据,利用唯一约束避免重复条目
- 🔌 创建全局 Prisma 客户端实例,通过扩展优化性能并避免开发环境重复实例化
- 📊 在 Next.js 组件中直接查询数据库,展示用户和披萨列表,实现类型安全操作
- 📝 构建订单管理界面,支持查看订单详情、取消订单及创建新订单功能
- ⚡ 利用 Next.js 服务端操作处理表单提交,实现数据更新与页面重定向
- 🎯 单仓库架构减少后端分层,使用统一 TypeScript 栈提升开发效率与一致性
我未能用 Claude 重现 1996 年《空中大灌篮》网站 | j0nah.com
作者尝试使用 Claude AI 仅凭截图和素材文件复刻 1996 年《太空大灌篮》官网,但最终失败。整个过程揭示了 Claude 在视觉空间精确测量和自省修正方面的核心局限。
- 🎯 任务设定:提供官网截图和素材,要求 Claude 精确复刻采用绝对定位的静态页面
- 🤖 盲目自信:Claude 初期声称完美复刻,实际布局存在明显偏差,且自我评估与输出结果脱节
- 📏 测量缺陷:Claude 承认无法获取精确像素坐标,仅能进行视觉估算,导致定位误差
- 🛠️ 工具失效:作者添加网格覆盖、坐标参考、分屏对比等辅助工具后,Claude 仍陷入自我验证循环
- 🔍 视觉局限:推测 Claude 的视觉编码器将图像分块处理,丢失细节精度,导致语义理解与几何执行不匹配
- 📈 错误固化:每次迭代调整仅微调错误布局,未能突破初始错误的空间认知框架
- 🧩 分区尝试:将截图分割为六个区域分别分析,仍无法改善定位精度
- 🔬 放大实验:提供 200% 放大截图试图增强细节识别,但 Claude 未能正确处理比例换算
- 🧠 认知矛盾:能够准确描述布局概念(如“行星环绕排列”),却无法转化为精确的 CSS 坐标
- 🏁 未解难题:最终承认失败,认为这个 28 年前的网页设计意外成为 AI 空间推理能力的基准测试
工具
lina
Lina 是一个专为现代用户界面设计的自适应滚动区域组件,旨在替代 shadcn/ui 的 ScrollArea,提供更优的默认设置和更接近原生的交互体验。它支持 Radix UI 和 Base UI 两种底层实现,具备自适应遮罩、微交互优化和原生触控支持等特性,可无缝集成到现有项目中。
- 🌟 自适应遮罩 – 仅在内容可滚动时显示边缘渐变效果,并根据滚动位置、轴线和容器形状实时调整。
- 🖱️ 微交互优化 – 在非触控设备上为自定义滚动条提供悬停/按压效果,滚动条滑块行为响应灵敏。
- 📱 原生触控支持 – 针对 iOS/Android 优化了触摸操作、动量滚动和被动监听器,确保触控设备上的滚动体验流畅自然。
- 🔄 无缝替换 – 完全兼容 shadcn/ui ScrollArea 的 API、属性和类名,可直接替换使用无需额外调整。
- 🛠️ 双底层支持 – 提供基于 Radix UI 或 Base UI 的组件变体,保持一致的 API 和视觉设计。
- 📦 简易安装 – 可通过
npx shadcn@latest add命令快速安装,并提供了详细的使用示例。
GitHub - mutativejs/travels:一个由Mutative JSON Patch 驱动的快速、框架无关的撤销/重做核心
Travels 是一个基于 Mutative JSON Patch 的快速、框架无关的撤销/重做核心库,通过仅存储状态差异而非完整快照来实现高效的内存使用和性能。
- 🚀 高性能与内存高效 – 仅存储状态差异(JSON Patch),相比传统快照方式内存占用减少 10 倍以上,更新速度更快。
- 🔄 框架无关 – 可与 React、Vue、Zustand、MobX、Pinia 或原生 JavaScript 配合使用。
- 🛠️ 灵活的更新方式 – 支持直接赋值、函数返回新状态或通过草案(draft)进行可变式更新,推荐使用草案语法以获得更直观的编码体验。
- 📜 历史记录管理 – 提供撤销(back)、重做(forward)、跳转(go)和重置(reset)功能,并可设置最大历史记录条数(maxHistory)以控制内存。
- 🔧 可变模式(Mutable Mode) – 适用于需要保持对象引用稳定的响应式状态(如 MobX、Vue/Pinia),允许在原对象上直接修改。
- ⏸️ 存档模式(Archive Mode) – 支持自动存档(默认)和手动存档,可将多个状态变更合并为单个历史记录条目。
- ⚠️ 状态要求 – 状态必须为 JSON 可序列化(普通对象、数组、字符串、数字、布尔值、null),复杂类型如 Date、类实例、函数等不受支持。
- 📦 持久化支持 – 可将当前状态、补丁和历史位置保存到本地存储(如 localStorage),便于跨会话恢复。
- 🧩 框架集成示例 – 提供了与 React、Vue、Zustand 等流行框架的集成代码示例。
- 🔍 高级功能 – 支持通过包装方法添加验证、权限控制、日志记录等自定义逻辑,并具备完整的 TypeScript 类型支持。
Vercel 发布新 npm 包:自动修复流式 Markdown 中断问题
Remend 是一个独立的 JavaScript 包,专门用于智能处理 AI 流式输出中常见的未完成 Markdown 语法,确保其在任何应用程序中都能被正确渲染。
- 📦 独立发布:Remend 原本是 Streamdown 的一部分,现已作为独立库(
npm i remend)发布,可集成到任何应用中。 - 🤖 解决核心问题:AI 模型逐令牌流式输出 Markdown 时,常产生未闭合的代码块、粗体标记、链接或列表,导致渲染失败或布局混乱。
- 🛠️ 自动补全:它能自动检测并补全未终止的 Markdown 块,在流式传输中提供稳定、干净的输出。
- 🔌 即插即用:可作为任何 Markdown 渲染器的预处理步骤,与 unified 等工具链无缝配合。
- 🧪 经过实战检验:已在 Streamdown 及生产级 AI 应用中经过测试,能智能处理数学表达式、产品代码、嵌套链接等复杂边缘情况。
- 🚀 快速上手:可通过 Streamdown 使用,或直接通过
npm i remend安装独立库。
GitHub - filipsobol/sonda:适用于JavaScript和CSS的通用可视化工具与分析器。兼容多数打包工具和框架。
Sonda 是一款通用的 JavaScript 和 CSS 可视化分析工具,兼容主流打包工具和框架,通过分析源码映射提供精确的打包报告。
- 🛠️ 通用分析工具 – 支持 Vite、Rollup、webpack 等多种打包工具,以及 Next.js、Nuxt、Astro 等框架
- 📊 精准可视化报告 – 基于源码映射分析,展示 Tree Shaking 和压缩后的模块体积,生成交互式 HTML 报告
- 🌐 在线体验 – 提供官方文档和在线演示,便于快速了解和使用
- 📦 开源项目 – 采用 MIT 许可证,拥有活跃的社区维护和版本发布
- ⭐ 受欢迎程度 – 在 GitHub 上获得大量关注,被众多项目所使用
GitHub - platformatic/kafka
这是一个用于 Apache Kafka 的现代、高性能、纯 TypeScript/JavaScript 类型安全客户端库。
- 🚀 高性能:针对速度进行了优化。
- 🧩 纯现代 JavaScript:使用最新的 ECMAScript 功能构建,无需原生插件。
- 🔒 类型安全:提供完整的 TypeScript 支持和强类型。
- 🔄 灵活的 API:所有 API 都支持 Promise 或回调函数。
- 🌊 流式或事件驱动消费者:借助 Node.js 流,可以选择首选的消费方式。
- 🛠️ 灵活的序列化:支持可插拔的序列化和反序列化器。
- 🔗 连接管理:自动连接池和恢复机制。
- 📦 低依赖:外部依赖极少。
- 📚 全面功能:提供生产者、消费者和管理员客户端 API。
- 🛡️ 错误处理:定义了清晰的错误层次结构,便于调试。
- 📈 性能调优:内部优化以减少事件循环开销,支持高水位线配置。
- 📄 丰富文档:包含详细的 API 参考和示例代码。
更新
Python-Node:现已支持流式传输与 WebSocket
@platformatic/python-node v2.0.0 版本现已发布,引入了对 HTTP 响应流式传输和双向 WebSocket 通信的完整支持。该版本使全栈团队能够通过桥接 Python 的异步生态系统与 Node.js,构建实时、高性能的应用程序。
- 🚀 支持 HTTP 响应流式传输:新的
handleStream()方法允许以增量方式处理响应块,减少大响应的内存占用,并可在正文完成前立即访问响应头。 - 📤 支持 HTTP 请求流式传输:现在可以将请求正文流式传输到 Python,这对于处理大文件上传、渐进式数据处理或实现自定义流式协议至关重要。
- 🔄 支持双向 WebSocket 通信:Python ASGI 应用程序现在可以处理持久、双向的连接,适用于构建聊天应用、实时仪表板或多人游戏等场景。
- 🏗️ 实现 ASGI 3.0 协议:底层实现了 ASGI 3.0 协议规范,确保与整个 Python 异步生态系统的兼容性,包括 FastAPI 的
StreamingResponse和 Starlette 的 WebSocket 端点。 - 💾 降低内存占用:流式传输大响应而无需将所有内容缓冲在内存中。
- ⚡ 更快的首字节时间:在正文开始写入之前即可立即访问响应头。
- 🔧 更好的资源利用率:响应块到达时即进行处理,无需等待完成。
- ⏪ 向后兼容:现有使用
handleRequest()的代码几乎完全无需更改即可继续工作。 - 📊 实际应用示例:包括使用 FastAPI 构建服务器发送事件(SSE)的实时监控仪表板,以及构建具有双向通信的对话式 AI 助手。
- 🛠️ 集成场景:支持多种集成模式,如在 Python 中运行机器学习模型进行实时推理、渐进式数据处理、混合 API 网关以及为现有 Python 工具添加 WebSocket 接口。
- 📦 入门与迁移:提供了安装指南,并解释了何时使用
handleRequest()与handleStream(),以及迁移现有应用程序的检查清单。
发布 6.1.0 版本 · ant-design/ant-design · GitHub
Ant Design 发布了 6.1.0 版本,包含多项新功能、问题修复和优化,涉及 ConfigProvider、Alert、Drawer、Select、Table、Button、Menu 等组件,并进行了依赖库迁移和 TypeScript 类型更新。
- 🆕 ConfigProvider 新增支持配置 Tooltip、Popover 和 Popconfirm 的 trigger 属性。
- 🆕 Alert 和 Drawer 新增语义化关闭按钮元素,Drawer 还支持 resizable 的布尔类型设置。
- 🆕 Select 新增 optionFilterProp 多字段搜索功能。
- 🐞 修复了 Select 在非搜索状态下显示输入光标、选项未打开等问题。
- 🐞 修复了 Table 的 cellFontSizeSM 和 cellFontSizeLG token 不生效的问题。
- 🐞 修复了 Button 部分 Token 在特定变体下不生效的问题。
- 💄 修复了 Menu 组件 item 中定义的 style 不生效的错误。
- 🛠 更新了 @ant-design/react-slick 版本以删除 classnames,并迁移了 rc-overflow 和 rc-virtual-list 以删除 rc-util。
- 🤖 TypeScript 方面,Alert 新增导出 ErrorBoundaryProps 类型,ConfigProvider 支持 Table rowKey 传入函数,Notification 的 title 属性改为可选。
TypeScript 7 进展 - 2025 年 12 月 - TypeScript
TypeScript 7.0(代号“Corsa”)的开发进展顺利,其原生编译器与语言服务已进入预览阶段,性能显著提升,并计划作为 TypeScript 6.0 之后的下一个主要版本发布。
- 🚀 性能大幅提升:原生编译器(tsgo)在完整构建中相比 TypeScript 6.0 有近 10 倍速度提升,并支持多线程并行构建。
- 🔧 编辑器支持完善:VS Code 扩展预览版已提供代码补全(含自动导入)、跳转定义、重命名等核心语言服务功能,日常使用稳定。
- ✅ 类型检查高度兼容:TypeScript 7.0 的类型检查已接近完成,在数千个测试用例中与 6.0 的错误检测结果基本一致。
- 📦 编译器功能就绪:支持增量编译(--incremental)、项目引用和构建模式(--build),大多数项目可无缝尝试。
- ⚠️ 注意变更与限制:将移除部分已弃用功能(如--target es5),JavaScript/JSDoc 类型检查更严格,且暂不完全支持旧版 API 与低版本 ES 目标编译。
- 🛑 版本过渡明确:TypeScript 6.0 将是最后一个基于 JavaScript 代码库的版本,后续主要开发将集中在 7.0 上,以加速原生生态成熟。
- 📢 鼓励开发者试用:团队邀请用户通过 VS Code 扩展和 npm 包(@typescript/native-preview)体验预览版,并反馈问题以帮助完善。
设计
2026 年构建设计系统
本文概述了构建现代设计系统(特别是针对 2026 年)的核心原则与实用建议,强调避免过度工程化,追求低维护成本和高效率。作者基于多年经验,指出常见陷阱并推荐以成熟的开源组件库为基础的最小可行产品方案。
- 🎯 设计系统的本质:设计系统是确保产品设计开发一致性、提升效率的集中化指南、可复用组件和标准的集合,包含色彩、字体、UI 组件等,为团队提供统一依据。
- ⚠️ 常见陷阱与核心原则:避免追求“完美”系统而导致过度维护;最大的误区是自行构建组件库,这会带来版本管理、开发速度、长期维护等沉重负担。核心目标是低维护、低摩擦。
- 🚀 推荐 MVP 构成:1. 设计语言(色彩、字体等视觉基础);2. Figma 库(发布设计变量与组件);3. 选择强大的开源组件库作为基石;4. 代码基础设施(推荐使用 Turborepo/NX monorepo,配套 Storybook 等工具);5. 为所选组件库构建并发布主题包。
- 📦 选择组件库的关键标准:开源且流行(如 GitHub stars > 20k)、强大的主题定制功能、丰富的组件目录、详细文档、开箱即用的无障碍与国际支持、优异的性能与包体积,以及可选的 AI 助手 MCP 服务器支持。
- ⚛️ React 库推荐:在 Mantine、Chakra 和 MUI 中,Mantine 是首选,因其组件更丰富、主题模型更灵活、采用零运行时样式性能更优,且提供大量实用工具。
- 🔧 关于 Shadcn 的说明:虽适用于个人项目,但不适合企业级设计系统,因为它本质上仍需自行构建和维护组件库,违背了“避免维护自有组件库”的首要原则。
- ✨ 总结与展望:2026 年的设计系统应立足务实,专注于减少摩擦、提升团队效率。通过夯实设计语言、借助开源生态、选择合适组件库,才能构建出持久、灵活且易于维护的系统,使团队更快、更一致地构建优秀产品。
AI
beads
Beads 是一个专为 AI 编码代理设计的轻量级、基于图的分布式问题追踪系统,它通过 Git 同步,为多代理协作提供类似中央数据库的体验,以解决代理在长周期任务中的遗忘问题。
- 🧠 核心定位:作为 AI 编码代理的“记忆升级”系统,通过依赖关系图管理任务,提升代理处理复杂、嵌套计划的能力。
- 🚀 零配置启动:只需在项目根目录运行
bd init即可创建本地数据库,AI 代理会自动接管后续使用。 - 🔗 智能依赖管理:支持四种依赖类型(阻塞、相关、父子、发现于),能自动检测“就绪工作”(无开放阻塞项的任务)。
- 🌐 分布式设计:数据源为 Git 托管的 JSONL 文件(
.beads/issues.jsonl),配合本地 SQLite 缓存实现跨机器同步,无需中央服务器。 - 🆔 防冲突 ID:采用基于哈希的 Issue ID(如
bd-a1b2),取代顺序编号,从根本上避免多分支、多代理并发创建时的 ID 冲突。 - 🤖 代理友好:提供
--json输出格式便于程序集成,并支持通过bd onboard引导代理完成工作流配置。 - ⚙️ 灵活部署:支持标准、受保护分支、贡献者、团队及隐身模式等多种初始化选项,适应不同协作场景。
- 📊 丰富功能:包含问题创建/查看/更新、依赖树可视化、标签系统、数据压缩(记忆衰减)、守护进程管理及 Web 监控界面等。
- 🔄 自动同步:通过守护进程和可选的 Git 钩子,实现本地数据库与 Git 仓库 JSONL 文件之间的双向自动同步。
Manage Claude's memory
本文详细介绍了 Claude Code 的记忆功能,它通过分层存储系统(企业级、项目级、用户级等)保存用户的偏好设置和工作流程指令。记忆文件可自动加载、支持导入和模块化规则,并提供了快捷编辑、路径限定规则等功能,帮助团队和个人高效管理编码规范与开发习惯。
- 🏢 企业级记忆 – 存储在系统指定目录,由 IT/DevOps 统一管理,适用于全组织的编码标准和安全策略。
- 📂 项目级记忆 – 通过
./CLAUDE.md或./.claude/CLAUDE.md保存团队共享的项目架构、工作流程和编码规范。 - 🧠 用户级记忆 – 存放在用户主目录,记录个人偏好(如代码风格、常用快捷键),适用于所有项目。
- 🔗 记忆导入机制 – 支持在
CLAUDE.md中使用@路径语法导入其他文件,实现灵活配置,最多支持 5 层递归。 - 🗂️ 模块化规则 – 可在
.claude/rules/目录下按主题(如前端、测试)分文件存储规则,并支持通过 YAML 前端元数据限定规则生效的文件路径。 - ⚡ 快速添加记忆 – 在输入时以
#开头可快速添加记忆,并通过/memory命令直接编辑记忆文件。 - 🌐 符号链接支持 – 允许通过符号链接共享规则文件,方便在多项目间复用统一规范。
- 📝 最佳实践建议 – 推荐记忆内容具体化、结构化分组,并定期更新,以确保 Claude 使用最新上下文。
ten-framework
本文介绍了 TEN 框架,这是一个用于实时多模态对话 AI 的开源框架。文章详细说明了其生态系统、快速入门指南、多种代理示例(如语音助手、唇形同步虚拟形象等),以及如何通过本地环境、Docker 或云服务进行部署和自定义。此外,还提供了社区资源、贡献指南和许可信息。
- 🚀 框架简介 – TEN 是一个开源框架,专注于实时多模态对话 AI,包含 TEN Framework、Agent Examples、VAD 等多个生态组件。
- 🌐 社区与资源 – 提供 X(Twitter)、Discord、LinkedIn、Hugging Face 和微信等社区渠道,方便开发者获取更新和交流。
- 🗣️ 代理示例 – 支持多种应用场景,包括多用途语音助手、唇形同步虚拟形象、语音分段识别、SIP 通话、转录工具以及 ESP32-S3 硬件集成。
- ⚙️ 快速入门 – 可通过本地环境(需 Docker 和 API 密钥)、GitHub Codespaces 或自行部署快速启动代理示例。
- 🐳 部署方式 – 支持通过 Docker 构建镜像部署,也可拆分前后端部署到 Vercel、Netlify 等云服务平台。
- 🔧 自定义与扩展 – 可通过 TMAN 设计器或修改配置文件自定义代理,并集成多种扩展功能(如记忆、VAD 等)。
- 🤝 贡献与许可 – 鼓励开源贡献,提供贡献指南;核心框架基于 Apache 2.0 许可,部分组件有额外限制。
- 📊 项目状态 – 项目已获 9k 星标、1.1k 分叉,涵盖 Python、C、C++、Rust 等多种编程语言,持续活跃更新。
其他
AI 公司股价大涨的原因是,它向投资者描绘了一幅场景:AI 将来会承担人类工作,当老板解雇员工并用 AI 替代时,老板会省下你的一半工资,并将另一半工资交给 AI 公司。
-- 《AI 批判指南》
前端十大戒律 | Felipe Gustavo 的博客
本文总结了前端开发的十条实用准则,旨在帮助开发者高效管理项目、协调团队并确保交付质量。
- 🛑 若当前版本已获认可,无需额外改动
- 🤝 面对复杂设计需求,拉上业务方共同决策
- 👥 促进设计师与业务方直接沟通以简化方案或调整排期
- ⏳ 提前与后端协调需求并明确责任
- 🌙 选择低峰时段部署以减少用户对问题的感知
- 📝 在工单中详细记录修改内容和决策依据
- 📱 全面测试不同分辨率及弱网/低性能设备表现
- ⏰ 工期紧张时优先保障核心功能与用户流程
- 🔍 紧密配合测试团队,快速修复问题
- ⚖️ 合理评估工期,避免过度承诺
当林纳斯遇见林纳斯:托瓦兹与 LTT 对话的洞见
Linux 创始人 Linus Torvalds 罕见地出现在知名科技视频博主 Linus Sebastian 的频道中,进行了一次坦诚的对话。他分享了自己对 Linux 发行版、硬件偏好、Git 的思考以及当前的工作状态,展现了一位专注内核开发、远离聚光灯的务实工程师形象。
- 🐧 使用的发行版:Torvalds 明确使用 Fedora,主要原因是其与内核开发者社区紧密合作,便于他编译和升级自己的内核,而对桌面环境等其他功能并不关心。
- 💻 硬件偏好:他偏好 AMD 处理器,并特别强调 ECC 内存对于系统稳定性的至关重要,源于早年因普通内存故障导致调试浪费数日的经历。
- 🔧 非硬件发烧友:他坦言自己并非硬件爱好者,上次组装电脑已是五年前,只追求设备能可靠地完成工作,态度十分务实。
- 📦 Git 的诞生:Git 的创建是因为当时没有合适的版本控制系统能满足内核开发需求,他花了约六个月时间完成初始版本后,便交由他人维护。
- 📝 编码工作转变:如今他几乎不再编写内核代码,早期版本他贡献了大部分代码,而现在他的工作主要是通过邮件管理项目、审阅代码和协调发布。
- 📧 在线习惯:他刻意避免社交媒体,几乎不使用任何在线会议工具,日常协作完全依赖电子邮件,极其注重隐私和专注。
- 👨👩👧👦 生活重心:Torvalds 更愿意将时间留给家庭,并将 Linux 内核开发视为自己热爱的“业余爱好”,而非追求名誉或地位。
- 😄 公众形象:在视频中他表现得直率而谦和,相比早年更为温和,让公众看到了这位技术巨匠真实、接地气的一面。