关于 vibe coding 重构项目后带来的一些思考

这周重构了网关项目

用着用着发现我以前简直是在乱用,然后就整理了一下途中遇到的一些问题以及我自己的方案,也又一次坚定了

AI 无法产出完整的用于生产环境的工程


1. 高效review

首先告诉他,你懂语法,只是不懂项目,少说废话,不然AI幼师就该上线了,还能给你整点练习题让你做。

我是 rust 开发人员,也是本项目的初学者,请你厘清项目结构后,按照功能模块或者文件作为学习单元,为我逐个单元讲解本项目,复杂逻辑可以逐行讲解,主要侧重点是功能逻辑、数据流转、设计哲学,必要时使用简单的伪代码举例。
如果是样板代码,就告诉我这是不是业内的通用方案;如果有多个可选配置,就列出其他可选配置项,并告诉我各个配置项的优劣。

2. 建立约定文件,边对话边追加约定和逻辑:

追加规则:获取数据目录全部使用 config.rs 中的 get_dir_path() 方法,禁止额外创建;
追加规则:所有建表语句都在 db/schema_definition.rs 文件,每次数据库结构改动都将数据库版本号+1;
追加规则:所有实体类都创建在model目录下,每次数据库改动都对应更新实体类;
追加规则:所有新接口都确保支持IPC通信和http通信,代码规范可参考 xx 方法;
追加规则:所有接口参数改动都确保前端同步更新;

3. 模块简单注释;复杂功能详细注释;疑难杂症详细注释

模块注释给人看的,每次改动审查 diff 的时候一下就知道改了哪些地方有没有改错,尤其是不熟悉的语言,效率大大提升。
详细注释是给下一个空上下文的AI看的,这个边界需要人工把控,我现在是如果多轮对话/人工引导之后AI才能找到问题所在的话,就需要详细注释了。

以本项目为例:
原本的 beforeBuildCommand 命令是 pnpm --dir frontend pnpm build
但是Tauri 2.0 自动根据 frontendDist 配置推断 frontend 目录,这个知识AI知道,但是应该埋藏的挺深,需要分析报错+人工引导才能发现问题所在,那就写入注释,防止后续又在这儿踩坑。

# Note: Tauri 2.0 自动根据 frontendDist 配置推断 frontend 目录,并从该目录执行 beforeBuildCommand。
# 因此 tauri.conf.json 应该直接使用 "pnpm install && pnpm build",而不是 "pnpm --dir frontend ...",
# 否则会导致路径错误 (frontend/frontend)。

4. 善用fork

尽可能保证上下文的连贯
比如在 review 的时候,肯定看着看着就会有疑问,问题全部搞明白后还是回到注意继续讲下一个单元

5. 语言选择

如果要在几个你都不熟悉的语言里面选择,选择自检功能强大的语言。
之前用 java 用 Python 也有虽然检查,但是都没有主动执行过。这次重构选择的 rust ,写完都不需要我提醒,就会就自动跑一遍 cargo check 检查问题,有问题自己修复,体验很棒!


暂时想到的就这些,欢迎补充

21 Likes

感谢分享

感谢分享

感谢分享。

感谢佬分析,非常干练直接,收藏啦哈哈哈