为什么要写这篇

七月底那篇 2026 开发复盘 写的是「半年五个项目」的长线回顾。而这周的情况很不一样:三个项目几乎同时开工、同时推进、同时收尾,其中两个还涉及我之前完全没碰过的领域。

这篇只讲三件事:做了什么(一句话)、遇到了什么问题、以及 vibe coding 到底靠不靠谱。不想写成功能清单,很多细节也没必要展开。


三个项目,三句话

项目是什么主要技术
织词 PromptWeaverWindows 桌面提示词工作台Electron、React、zustand
游戏大厅 Game Hall私有 P2P 多人游戏平台Next.js、WebRTC、WebSocket
阅海 Yuehai飞牛 NAS 图书馆应用Kavita fork、fnOS 打包

三个项目几乎没有重叠的技术栈:一个桌面端、一个实时联机、一个 NAS 生态。这也是我刻意为之——想看看 vibe coding 在不同领域的表现。


一、织词:桌面端的性能与数据

桌面应用的第一个体会:本地数据越多,越考验工程能力。角色、标签、翻译映射、别名……数据量上来之后,从「能跑」到「不卡」之间隔着一次重构。

遇到的问题:

  • 状态管理失控:功能越加越多,一个主组件膨胀到几百行、七八个 useState,改一处崩三处。最后老老实实重构,拆成多个 store 才稳住。
  • 渲染性能:列表数据大之后,滚动明显卡顿,不得不引入虚拟滚动。
  • 中文搜索远比想象复杂:汉字、拼音、首字母、别名、同义词,每个都要命中;还遇到过某条全量查询耗时 20 秒的超时问题,最后靠给匹配逻辑加门控条件解决。
  • 中英双语的一致性:输出是中英双份的,两边经常对不上。后面做了不少数据审计工作,才把差集清零。

心得:数据质量工程(data engineering)的坑,不比写代码少。vibe coding 能很快写出功能,但「数据对不对、全不全、一致不一致」这件事,AI 帮不了多少,得自己一遍遍核对。


二、游戏大厅:P2P 联网是深水区

这个项目的定位很简单:朋友之间通过邀请码注册,建立房间,然后双方设备点对点直连对局,服务器只做控制面。

遇到的问题:

  • 库与环境的版本暗坑:密码哈希库在 CI 的 Node 版本下直接报「不是函数」,查了半天是版本兼容问题,升级运行时才解决。
  • 白屏问题:为安全加了严格的内容安全策略(CSP),结果某些环境下一打开就是白屏,排查下来是安全策略和浏览器扩展冲突,最后做了权衡调整。
  • P2P 连不上:不同运营商、不同 NAT 环境下,直连经常失败。只能做成「局域网直连 → 点对点 → 中继兜底」三级策略,再加网络检测向导让用户自己看链路质量。
  • 平台限制:部署平台对 WebSocket 连接时长有硬限制,不得不设计短连接 + 退避重连 + 消息重放的方案。
  • 测试不稳定:端到端测试经常时好时坏,同一套用例在本地全过、CI 上随机挂,花了不少时间稳定它们。

心得:联网和安全的坑,vibe coding 只能帮你走到一半。AI 能写出 WebRTC 握手、能写出认证流程,但「为什么这个环境下连不上」「为什么 CI 上测不过」这种需要实机环境反复验证的问题,最后还是得靠人一点点试。


三、阅海:改一个大项目的勇气

这个项目是给 NAS 做的图书馆应用,基于开源的阅读器 fork 改造。这是三个项目里**最「改别人的代码」**的一个。

遇到的问题:

  • gitignore 误吞:一次配置失误,把源码文件整个从版本控制里吞掉了,差点丢文件,花了不少力气恢复。
  • 安全漏洞:fork 上游的代码里存在认证相关的漏洞,逐项审计修复,顺手把沙箱和内容安全也补上了。
  • 上游版本管理:fork 了多个开源项目,版本固定、许可证分层、上游更新跟踪,全是琐碎但必须做对的事。
  • NAS 集成:安装向导、权限、数据卷、生命周期脚本,和普通 Web 应用完全不是一个思路。

心得:改别人的大项目,最大的瓶颈是上下文。项目太大,AI 的上下文窗口根本装不下整个代码库,经常「改了这个忘了那个」。只能把改动拆得很碎,一次只动一个点,每步都靠测试兜底。


vibe coding 到底有什么问题

三个项目跑下来,说说我的真实感受:

1. 功能写得快,问题出在后面。 一周能堆出别人一个月的功能量,但随之而来的性能、数据一致性、边界情况,AI 不会替你想到。

2. 测试是唯一的救命稻草。 没有测试,vibe coding 就是给未来的自己埋雷。三个项目都是测试越写越重,到后期几乎改一个点就要跑一遍全量回归。

3. 上下文是硬天花板。 单文件、单模块 AI 很强;整个项目级别的「全局视野」,AI 给不了,得靠人拆分和设计。

4. 安全和隐私不能外包。 代码生成得再快,认证、权限、密钥管理这些还是要自己过一遍,不能假设 AI 写的就是安全的。

5. 数据比代码更费神。 尤其涉及大量结构化数据时,AI 写转换代码很利索,但数据本身的正确性,只能靠审计。


最后

这周最大的收获不是三个项目本身,而是摸清了 vibe coding 的边界:它把「从零到能跑」的时间压缩到极限,但「从能跑到能上线」的每一步,依然要靠自己的判断力

工具不会替你踩坑,只会让你踩坑的速度更快。想清楚这一点,vibe coding 就是很好的工具;想不清楚,它只是加速翻车的引擎。