分布式异步系统在用 vibe coding 下最大的困境主要是两个,第一个就是环境搭建,需要多个相互隔离的 linux/windows 环境,每个环境甚至需要有自己的网络栈和 docker socket 。第二个就是测试断言非常困难,如果靠轮询数据库状态/接口状态,很多时候不及时,无法断言一些中间状态转移,轮询 gap 可能错过一些异常状态。
vibe coding 非常依赖测试作为基线,如果没有完备的测试兜底,很容易陷入打地鼠的困境,修了一个 bug 引出另一个 bug ,并且还不知道为什么出 bug 。
它可以模拟一个几乎完全隔离的 linux 环境,特别适合 需要 systemd 作为 PID 1 需要比较真实的 Linux 主机语义 需要 独立网络栈 需要在容器里跑多服务,而不只是一个 app 进程 需要细粒度控制 mount / namespace / network bridge / user namespace 特别是每个节点本身也需要做容器编排的情况 这东西写起来非常复杂,不过难不倒 codex
与其轮询状态,不如把状态转移做成事件流,由测试编排统一订阅,这样永远不会错过中间状态,永远会有一个状态 trace ,LLM 非常适合根据 trace 来判断是否有异常信号。尤其是对于容器/算力编排系统,断言中间的容器/算力回收状态远比轮询来的靠谱。
1
JStone 6 小时 29 分钟前 "修了一个 bug 引出另一个 bug ,并且还不知道为什么出 bug" 这个我也遇到过 但是还没有有效的解决办法
|
2
lemonshuo 6 小时 27 分钟前
佬看着好高级 我只会 curd 已经蹲下观摩学习
|
3
jackOff 6 小时 19 分钟前
马勒戈壁异步编程是真难维护,ai 都经常翻车,我还是喜欢基于事件的形式来写
|
4
4seasons 5 小时 34 分钟前
天下大势,分久必合,合久必分
|
5
teaguexiao 5 小时 14 分钟前
楼主说的事件流方案确实是正解,轮询就是在赌时机。另外给 AI 写单测时带上状态机图(哪怕是文字描述),它出错的概率会低很多。
|
6
xwhxbg OP @JStone 大部分就是数据流的异常,如果有完备的事件流,可以让 LLM 分析下事件流异常信号,比如 once 被启动两次,该回收的没有触发回收事件之类的,从这个角度排查比直接许愿好很多
|
7
Zhuzhuchenyan 1 小时 22 分钟前
https://rxjs.dev/guide/testing/marble-testing
基于事件流的测试莫名让我想到了这个 |