写作

写作

关于 software、AI、systems、learning 与 inner practice 的文章和笔记。

工程

工程

工程 2 分钟阅读

JavaScript GC 机制:分代、宿主和常见泄漏

今天继续补 JavaScript 运行机制时,我发现 GC 很容易被说成一句空话:对象不用了,引擎会自动回收。 这句话没错,但太粗。真正有用的理解是:GC 回收的是从 roots 不可达的对象;新生代和老生代用的策略不同;同一套 JS 引擎放进浏览器和 Node,最容易出问题的地方也不一样。 图:以 V8 为例,GC 从...

软件工程 前端 JavaScript
工程 5 分钟阅读

JavaScript 的运行机制:从源码到 JIT 优化

今天重学 JavaScript 时,我卡在一个看起来很基础的问题上:我们说 JS “运行”时,它到底已经被编译到了哪一步? 真正有用的不是回答“是”或“不是”,而是把“编译”这两个字拆开。前端工程里说编译,通常是在说 TypeScript、Babel、SWC、esbuild;JS 引擎里说编译,说的是...

软件工程 前端 JavaScript
工程 21 分钟阅读

Workspace V2 Tab System:把浏览器标签页带进工作空间

Workspace v2 要做的不是多画一排 tab。用户会同时打开多个业务对象,刷新和分享链接还要回到正确页面;后台 runtime 不能偷偷改 URL、弹层、事件或前台 CPU。最后真正要解决的是 ownership:intent、URL、tab 状态、runtime cache、sandbox 副作用和渲染 frame 分别归谁管。...

软件工程 前端 React
工程 5 分钟阅读

React 运行时性能优化

优化 React 应用的性能,主要有两个方向: 渲染(Rendering):渲染过程是 React 应用中开销最大的部分之一(包含 Diff 计算)。 计算(Calculation):受限于浏览器的有限资源,浏览器并不适合执行重计算任务。 渲染React.memo当一个组件重新渲染时,无论父组件传给子组件的 props...

软件工程 前端 React

AI 与 Agent

AI 与 Agent

AI 与 Agent 6 分钟阅读

用 Harness 让 AI 做性能优化:Goal-Driven Loop 和 Ledger

我做了一个性能优化 skill,把 AI Agent 从“可以试试懒加载”这类建议,拉进 harness、目标和 ledger 组成的循环里一轮轮跑。在一次 Workspace 优化里,strict profile 看到 Workstream 5089ms -> 2519ms、Report Center 10021ms ->...

AI 软件工程 前端 Web 性能
AI 与 Agent 3 分钟阅读

Agent Skills 探索实录 — AI Agent 时代的函数式蓝图

TL;DR: Skill 就是跑在大模型上的函数——封装固定流程、定义输入输出、支持跨 Agent 复用。本文从第一性原理出发,拆解 Skill 的本质、设计原则和工程实践,帮你把零散的 Prompt 经验沉淀为可复用的能力单元。 背景 Agentic AI 领域概念层出不穷,而 Skills 是近几个月讨论最多、我认为也最重要的一个。本文记录了我探索...

AI 软件工程 Claude Code Agent
AI 与 Agent 3 分钟阅读

Vibe Coding vs Spec-Driven Coding — AI Coding 的演化之路

TL;DR: Vibe Coding(氛围编码)让 AI 自由发挥,速度快但不可控;Spec-Driven Coding 通过持久化的规范文件约束 AI 行为,实现可预测、可追溯的输出。本文用 OpenSpec + Claude Code 的实践经验,拆解两种模式的差异和适用场景。 背景与目标 我目前主要用 Claude Code...

AI 软件工程 Claude Code 代码生成
AI 与 Agent 8 分钟阅读

从第一性原理理解 SEO —— 一次博客全面改造的深度复盘

大多数 SEO 指南都是清单式的:加这个 meta 标签、装那个插件、改这个配置。但清单无法帮你理解 为什么 ——不理解为什么,你永远不知道自己遗漏了什么。 最近我对这个博客做了一次全面的 SEO 改造。比起逐条记录”发现了什么、修了什么”,我更想分享的是背后的思维模型。一旦用这个视角看 SEO,所有优化都变得显而易见。...

AI 软件工程 前端 Web 性能
AI 与 Agent 2 分钟阅读

从零到一打造基于 GPT 的客服聊天机器人 — 算法篇

摘要本文介绍如何运用 OpenAI 的多种技术,打造一个能够回答用户问题并与其进行交互的智能 GPT 客服聊天机器人。 我们主要使用的技术包括: Embeddings(嵌入):该技术将我们的知识库(如 FAQ 和产品设计等文档)转化为一组向量,从而可以通过比较文本向量来轻松检索与问题相关的上下文。了解更多关于嵌入的信息,请参阅 OpenAI API。...

AI ChatGPT
AI 与 Agent 6 分钟阅读

使用模块化设计与 ChatGPT 生成代码

你可以在这个 codesandbox 中找到本文的所有代码。 很多人没有意识到,如今 AI 真的可以帮助我们写代码!相信我,我一直在使用 chatGPT 帮助我写了数千行代码。让我来告诉你怎么做。我将以一个前端组件为例,向你展示如何构建一个生产就绪的组件。我们使用 React 来帮助我们模块化代码,这样 chatGPT...

AI 软件工程 前端 ChatGPT

系统与学习

系统与学习

系统与学习 12 分钟阅读

SICPJS 第二章:用数据构建抽象

词汇表问题笔记 复合数据(Compound data):就像复合函数一样,我们增强了语言的表达能力,并提升了设计程序时所处的概念层次。 将数据粘合在一起(Glue data together):复合数据将数据粘合在一起,从而降低系统的复杂度。 数据抽象(Data...

SICPJS
系统与学习 26 分钟阅读

SICPJS 第一章:用函数构建抽象

词汇表 计算过程(computational process,巫师脑中的精灵):一种思想,看不见也摸不到,但能解决问题并驱动现实世界。 程序(program,巫师的咒语):通过编程语言规定计算过程,操纵另一种抽象事物——数据。 程序员(programmer,巫师的学徒):构思想法并施展咒语的人。 数据(data):...

SICPJS
系统与学习 1 分钟阅读

SICPJS——我的思考与学习计划 / 目录

心灵在对简单观念发挥其能力时,主要有以下三种行为: 将几个简单观念组合成一个复合观念,由此构成所有复杂观念。 其次,将两个观念——无论简单还是复杂——并列在一起,同时审视,而不将其合并为一,由此获得所有关系的观念。 第三,将这些观念与现实存在中伴随它们的所有其他观念分离:这被称为抽象,所有一般观念由此而生。

SICPJS

心智与实践

心智与实践

即将补充。

生活

生活

即将补充。

归档

全部文章

工程 React 运行时性能优化
工程 如何设计优秀的测试用例
工程 Web 性能优化策略与实践
AI 与 Agent Github Copilot 值得订阅吗?
工程 测试如何加速你的开发
工程 React 测试中的常见错误
工程 测试最佳实践:TDD
系统与学习 SICPJS 第二章:用数据构建抽象
系统与学习 SICPJS 第一章:用函数构建抽象