CEBBCAT
V2EX  ›  问与答

还是想问一下大家是怎么 AI 编程的

  •  
  •   CEBBCAT · 2 days ago · 1458 views
    (请不要不读正文就‘高谈阔论’,多谢!)

    新进入一个项目组,组里氛围很好,大家都朝气蓬勃的,但是好像没有 landing 过程,说起来也加入组里 2 月了,做了一些功能改造、错误率优化,但现在如果问我其中两个主要功能的实现逻辑,我只能说个 50 字的大概抽象,对于时序图、系统拆分、API 和 MQ 分别负责什么,我回答不上来

    但我们是希望能够提高工程化,建立起统一的响应结构、错误码、代码库结构、系统分拆、可观测性的。

    但在这样盲人摸象的情况下,不仅谈不上清晰的需求迭代,而且规范代码编写、可观测性改造也无从下手

    所以想问一下社区里的大家,现在是怎么 AI 编程的

    ---
    自我思考:vibe coding 被提出也有 1-2 年了,新小组 100%代码都是 AI 生成的,成员对代码库心智地图有些模糊,业界有 ADR 、Spec 这样的实践,也有说全自动 AI 完成,AI 编写+AI 审核+AI 验收的办法。

    但是我设想的方式:对一个仓库,首先明确业务需求,其次使用时序图、流程图进行抽象层面、分拆到模块的设计。此为心智地图+系统设计

    实践层面约定好统一的 JSON 响应结构、project layout 、注册型错误码 module ,日志和 tracing 标准,这样才可以有效控制仓库复杂度,让 AI 在轨道里面工作,去填充那些被方案评审确定下来的 OpneAPI 、DB DDL 之间的空间,这样才能持续化发展?
    17 replies  •  2026-11-12 17:44:40 +08:00
    athershu
    athershu
    2 days ago
    1
    你设想的方向我觉得是对的,补几条我们组实际在用的:

    1. 约定先落成仓库里的文件,再谈让 AI 遵守。响应结构、错误码、目录布局、日志字段这些,写成一份给 AI 读的规则文件放在仓库根目录,AI 每次开工先读;能写成检查的( lint 、架构测试、错误码注册校验)尽量写成检查,规则文件只管写不成检查的部分。

    2. 心智地图可以让 AI 帮你补。你现在对两个主要功能说不清,可以先让 AI 读代码,按功能产出时序图和模块职责说明,你对着代码核一遍,改对了存进仓库的文档目录。这既是你的 landing ,也是后面所有任务的上下文。

    3. review 发现一个坑就补一条规则。比如「这个目录是生成的不许手改」「这个接口必须幂等」,当场写进去,之后谁派的任务都会带上。规则是慢慢长出来的,不是一次设计完的。

    4. 任务粒度小一点,一个任务一个分支,交付带一段说明(改了什么、怎么验证的、哪里不确定)。100% AI 生成的代码库,最怕一次改一大片、没人说得清为什么。

    全自动「 AI 写 + AI 审 + AI 验收」我们没敢这么做,至少每块代码要有一个人看过它的结构和关键路径,不然就会出现你现在这种「代码都在,但没人脑子里有地图」的情况。
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    2
    @athershu 沉默是我无言的告白……
    ---
    @Livid 帮忙 ban 一楼号+删回复吧?多谢🙏
    frank1256
    frank1256
    2 days ago
    3
    额,哪有这么复杂,一般我都是找个以前写好的比较标准的代码,然后就叫 ai 去模仿就行了,让 ai 核心处理的主要是理解需求,代码已经有模板了。只有核心的 sql 会 review ,其他基本不看
    cheng6563
    cheng6563
    2 days ago
    4
    执行流程就该让代码本身描述,修改变动说明直接让 git 提交信息体现。
    需求文档只留原文归档。
    只留全局 Spec 解释核心框架规定。其他分支框架都按 Skills 按需加载。写一堆只管写不管读的 Spec/ADR 没啥鸟用,只会徒增漂移。
    API 文档不留,响应结构不留。直接让 AI 读源码(前提是必须强类型语言);
    unused
    unused
    2 days ago
    5
    时序图、流程图是给人看的,不是给 AI 看的,你想看就让它当场根据代码画一个
    jackOff
    jackOff
    2 days ago
    6
    项目里至少有一个模板项目,最好是经历实际业务考验的,这种项目拿来开发新项目不管是有没有 ai 都稳定很多
    jadehare
    jadehare
    2 days ago
    7
    我自己的项目是写了架构文档和结构文档,类似 adr 和 spec ,但是 adr 感觉是记录决策,可能是技术栈不同不太理解为啥要记录决策。架构一般是自己定下来,codex 感觉架构真不太行。结构是和代码目录对应的细分说明,开发的时候 agent 会直接更新对应的文件,自己看着拆分代码就好,agent 写完代码顺便更新文档后也可以直接看文档理解需求逻辑。一些写法约束,测试约束等等也都放到结构里。我是觉得结构不光是 ai 看自己也要看的,你可以让他直接画出来流程图,token 多也多不到哪去,自己也好梳理。
    jadehare
    jadehare
    2 days ago
    8
    @jadehare #7 哎这东西主要是都自己开发中一点一点摸索的,我更担心的是写了这么多 instruction 反而影响了 agent 发挥。而且也很难直接对比一个项目如果有这些东西,和什么都不写全权交给 agent 到底哪个会更好。
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    9
    @frank1256 系统设计方面老哥会监督吗?不会担心 AI 走偏吗?例如长期增长的业务流量,或者系统扩展层面
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    10
    @cheng6563 sure ,get you means ,而且很老兵了。一份代码+一份文档=两份有分歧的文件。

    你说的是存量仓库,我说的是增量仓库,你是不是之前写 Go ?掐指一算我也写了 7 年 Go 了,Self-documenting code 的概念我也很推崇,这里想讨论的主要是怎么在新增需求,以及一个又一个需求的长河中, [保持合理的代码及逻辑架构]

    欢迎继续回复哈老哥
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    11
    @jackOff 唔,我这两天还真听说过这个说法,说你找一个自己比较欣赏的项目,让 AI 照着它的结构去写。这样的话就像我们传统的那种 MVC 一样,既然走了“套路”,后面就循规蹈矩就行。

    有一个小问题是,实践中有没有遇到过例如 AI 手写 quicksort 但是不使用 stdlib ,或者不能很好平衡代码抽象、或者逻辑放到 View 层还是 Controller 层的问题?
    jackOff
    jackOff
    2 days ago
    12
    @CEBBCAT 在项目目录下加项目专属 skill ,禁止能造成阅读障碍的过度抽象设计,禁止滥用注解,减少不利于 debug 检查的设计,至于逻辑放到 view 层还是 controller 完全看业务接口多不多,ai 时代已经完全承受得起这种副作用变更了。我们现在起新项目就是这种摸自己过河会快很多
    x0c
    x0c
    2 days ago
    13
    企业开发,大量的领域名词和业务知识需要沉淀到项目文档里,通过定期蒸馏会话实现元认知和领域知识的文档化落地(类似睡眠期记忆整理),同时在项目 AGENTS.md 建立完整知识索引。可以看看我的 doc-skills: https://github.com/x0c/agent-doc-skills
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    14
    @jadehare #7 感觉你像是传统项目引入 AI 开发的样子。(因为我当时也是这样的。。。一步步介绍仓库里面的存量信息给 AI ,而不是让它自己*瞎改*)

    我觉得我们俩思想是很相像的,像 EVA 一样,带约束器的 AI 。现在这个时代感觉网络上 AI 编程的东西真的好火,而且凡事有工可以做(XD)的都是甩开膀子用 AI ,但是各方各面感觉怎么没人出来讲两句章法——所以既不能不用,又不知道怎么用才是最对的。

    所以搞快点 快点谁来教教我额。。。真的麻了
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    15
    @x0c 这位 2018 年注册的 V 友你好,您的意思我明白了,三个字儿:文档化

    关于正文的问题,不知道有没有兴趣具体指教下?不胜感激
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    16
    @unused 悄悄告诉你,现在一个 10W 行➕的项目,AI 画的架构图我已经读不懂了,一方面让它画它弄不清粒度,一会儿抽象到只有 7-8 个节点,一会儿 20-30 个节点而且逻辑很奇怪……不是屎山,是奇葩
    CEBBCAT
    CEBBCAT
    OP
    2 days ago
    17
    @jackOff #12 hhhh ,摸自己过河,改天结合《重构》知识,看看能不能从小到大,从点到面,逐步化解这么大一个仓库的复杂性吧。

    改天也许可以分享我的 skill ,之前写 Go 的时候还会阅读点同事的代码,把学到的编程范式和社区分享一下吧

    PS 分享两个链接:
    https://github.com/golang-standards/project-layout
    https://github.com/zakirullin/cognitive-load
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1879 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    ♥ Do have faith in what you're doing.