Skip to content

记录代码、工具,与那些值得慢慢想清楚的事。

这里更像一份持续更新的个人刊物
前端工程、AI 工具、Agent实践、个人投资工具,以及一些代码之外但仍需要判断的问题。

Editor
Jun
Archive
2014—2026
Essays
54
Index
49 tags
01

Editor’s Note

卷首语

这里是一份关于代码、工具,以及判断的笔记。

收录那些需要放慢一点才能看清的经验:代码如何形成边界,工具如何改变判断, 数据如何获得口径,而人在系统之中如何保留清醒的位置。

这里不急着给出漂亮结论,也不把实践压缩成口号。更重要的是把问题展开, 把依据留下,让每一次写作都成为日后仍可复读的观察。

02

Writing

最新写作

  1. Electron / Next.js 给 Next.js 套一层 Electron 壳:零改动打包成桌面应用 StockTracker 之前是一个纯 Web 服务,想着 Electron 易于分发,尝试把它打包成桌面客户端。本文记录整个过程中 Next.js 代码零改动的架构设计、踩过的坑和最终方案。
  2. 浏览器扩展 / AI 工具 我如何组织 AI 翻译扩展的缓存、批处理与 Provider 在双语阅读扩展里,翻译请求如果由页面脚本随手发送,很快会变慢、变贵、难以恢复。我在 Parallel Translate 中如何把缓存、批处理、多 Provider 与页面渲染拆开处理。
  3. 浏览器扩展 / 前端工程 我如何在浏览器扩展中把网页变成双语阅读视图 我最近在做一个双语阅读浏览器扩展。真正棘手的并不是把一句英文交给翻译服务,而是在不破坏原网页的前提下,找到正文、按需翻译、保留交互,并且随时还原页面。
  4. SQLite / 投资 为什么我用 SQLite 作为个人投资系统的数据底座 在 StockTracker 里,我没有把 SQLite 当成一个简陋的本地缓存,而是把它作为个人投资账本和 AI 工作流状态的本地数据底座。这篇文章从持久化方案对比讲到 SQLite 的机制和取舍。
  5. JavaScript / 投资 为什么投资系统不能只使用 JavaScript number 计算金额 JavaScript 的 number 很方便,但它表达的是二进制浮点数,不是金融系统需要的十进制语义。这篇文章从 0.1 + 0.2 讲到手续费、每股成本、FIFO 成本队列和 big.js 选型。
  6. AI 工具 / 前端 AI 对话里的逐字输出,背后其实是一条不断吐数据的 HTTP 响应 很多 AI 对话产品看起来像是在一个字一个字地打出来,背后通常不是 WebSocket,而是基于 text/event-stream 或 ReadableStream 的 HTTP 流式响应。这篇文章拆解 SSE、Content-Type 和前端增量渲染的实现细节。