记录代码、工具,与那些值得慢慢想清楚的事。
这里更像一份持续更新的个人刊物
前端工程、AI
工具、Agent实践、个人投资工具,以及一些代码之外但仍需要判断的问题。
- Editor
- Jun
- Archive
- 2014—2026
- Essays
- 58
- Index
- 50 tags
01
Editor’s Note
卷首语
这里是一份关于代码、工具,以及判断的笔记。
收录那些需要放慢一点才能看清的经验:代码如何形成边界,工具如何改变判断, 数据如何获得口径,而人在系统之中如何保留清醒的位置。
这里不急着给出漂亮结论,也不把实践压缩成口号。更重要的是把问题展开, 把依据留下,让每一次写作都成为日后仍可复读的观察。
02
Writing
最新写作
- 浏览器翻译插件上线后,真正麻烦的是适配真实网页 浏览器翻译插件在测试页面里跑通并不难,麻烦的是它要长期面对 SPA 路由、动态加载、复杂布局、站点样式和局部失败。上线以后,我更多时间花在让它稳定适配真实网页,而不是继续堆翻译功能。
- 词典查不到的时候,AI 兜底也不能随便兜 Parallel Translate 里有些词不是普通单词,而是品牌、银行、产品名或缩写。直接让 LLM 接管所有未命中查词会变慢也会变脏,我最后把它限制成只在用户主动查词、有上下文时触发的语境化兜底。
- 查词接口不能为了完整,把用户卡在原地 在 Parallel Translate 里,主动查词最重要的是先让用户看到可用结果。后来我把查词接口从同步等待外部富化,改成先返回词库结果,再把音频、例句和补充释义放到后台慢慢补齐。
- 划词翻译面板为什么难做 划词翻译看起来只是选中文字后弹出一个小面板,真正难的是选区解释、浮层定位、样式隔离、词典与 AI 编排、发音播放和生词状态同步。一个小面板背后,其实是一套横跨页面、扩展和后台服务的交互系统。
- 给 Next.js 套一层 Electron 壳:零改动打包成桌面应用 StockTracker 之前是一个纯 Web 服务,想着 Electron 易于分发,尝试把它打包成桌面客户端。本文记录整个过程中 Next.js 代码零改动的架构设计、踩过的坑和最终方案。
- 我如何组织 AI 翻译扩展的缓存、批处理与 Provider 在双语阅读扩展里,翻译请求如果由页面脚本随手发送,很快会变慢、变贵、难以恢复。我在 Parallel Translate 中如何把缓存、批处理、多 Provider 与页面渲染拆开处理。