各位 C++程序员, AI 工具使用的最佳实践是什么?提效如何? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
metmit
V2EX    程序员

各位 C++程序员, AI 工具使用的最佳实践是什么?提效如何?

  •  
  •   metmit 67 天前 2207 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不知是我姿势不太对,感觉 AI 带来的提升比较有限,尤其是一些深层逻辑、跨模块交互、并发等等问题上,不知大家的体验如何?

    自己平时主要使用 Gemini + 公司内网可用的 qwen:

    分析代码:
    1. AI 只能做到分析某个文件、某几个函数,同个会话再多给几个函数,就把前面的都忘了;
    2. 平时有个别逻辑复杂的函数,丢过去分析很好用;

    代码生成:
    1. vscode 内置的 qwen 很一般,基本没用过 tab 生成,还是通过会话方式让 AI 给出答案。
    2. 一些自己不熟悉的库、语法、多线程协作等,给 AI 明确提出需求,AI 给出的代码框架还不错,自己改改就能用,比如让一组异步任务多线程并行执行,等待所有线程返回结果再返回;
    3. 涉及多线程、指针等等容易出问题的地方,自己写都有可能出错,不敢让 AI 写自己 review (新人基本没 review 过别人代码没经验找出问题 + AI 不能背锅);
    4. 测例:AI 写 UT 应该很 6,不过我们平时不强制写 UT ,写 function test 、和业务结合的比较深,AI 不好用,除非是某些行业内标准业务流程+自己讲清楚逻辑,比如写 SQL ;

    分析问题:
    1. AI 最好用的地方是解答自己不熟悉的一些知识,编译报错、某些库等等;
    2. 一些深层的逻辑问题、并发问题、底层问题,很难讲清楚背景,AI 因为幻觉(我理解就是 AI 一定信誓旦旦给你答案,但可能完全胡编或抓小放大没侧重点)的存在,给出的排查思路很多时候是没用的。
    14 条回复    2025-10-20 11:48:53 +08:00
    liuguangxuan
        1
    liuguangxuan  
       67 天前
    1 、你的感觉是对的。
    2 、虽然 AI 带来的提升有限,但是 AI 之间的能力差距还是蛮大的。一个 AI 搞不定,可以换其他 AI 尝试一下。
    metmit
        2
    metmit  
    OP
       67 天前
    @liuguangxuan 是的,某些具体的小问题,有时换个 ai 能给出一些其他角度的解答。但是复杂逻辑 跨模块 并发 偏低层等等问题,对 ai 实在没信心…
    msg7086
        3
    msg7086  
       67 天前
    复杂项目可能需要先搞一个 memory bank 。
    多线程这块不好说,不过指针的话,我写代码的时候已经是能不用就不用了。
    不过我写 C++基本就只是写写开源项目,和公司项目差距还是非常大的,没有什么参考性。
    c0xt30a
        4
    c0xt30a  
       67 天前   1
    我的感受( codex,qwen,...)是除非你能拆分需求到函数,不然基本无用。
    liyafe1997
        5
    liyafe1997  
       67 天前
    Gemini 2.5 Pro 我试过不太行。
    现在我只用 Cluade sonnet 4.5 和 Codex ,效果感觉非常好。
    幻觉是因为你的 Prompt 不够准,如果你用 VSCode ,模型是没有联网能力的,Cursor 的那个 Browser 能力也很弱。涉及一些第三方库的,有方便的文档把文档直接喂进去,不方便的,我一般是用 ChatGPT 开联网搜索+Thinking ,让它生成示例代码,然后再把 ChatGPT 吐出来的代码喂到 Cursor/VSCode Copilot 里在自己的项目里落地,这么用我试了非常非常爽。

    以及 Cursor 有 Plan 模式,这个也很好用,防止一次 Prompt 之后越走越偏。

    总之我的经验是,如果 AI 有幻觉/乱来,在 Cluade sonnet 4.5 和 Codex 下,一定是你的 Prompt 不好,没有给 AI 足够的信息和清晰的指示。把 AI 想象成一个编程能力很强的人,但是他的电脑没有联网,你不告诉他你的业务,以及给足你的各种环境/第三方库的信息和需求,他也不知道该怎么写。
    metmit
        6
    metmit  
    OP
       66 天前
    @c0xt30a 是的。
    就是不知道顶级的编码 ai 对于大型 c++项目有没有明显帮助 比如数据库这种,稳定性 性能 结果准确性都十分看重的。
    公司内部项目代码还有点屎,之前有个内存池模块,设计时能按内存大小管理内存,实际每次申请入参固定传 1 、内存池占用+1 ,qwen 非说是按申请内存大小管理…
    metmit
        7
    metmit  
    OP
       66 天前
    @liyafe1997 学到了。
    我还想知道某个需求是跨多个模块的,可能新增几个文件、修改几十个文件,这种情况 ai 也能做好吗?
    这种需求自己写,就根据已知的架构、拆分需求、最后设计好方案,实际编码时还有很多很多意想不到的问题
    liyafe1997
        8
    liyafe1997  
       66 天前 via Android
    @metmit 跟多个模块没关系,只要不是特别夸张( token 过长),你的指示要足够清晰,AI 才好去做。

    还是那句话,设想成你招了个编程能力很强的人,有各种平台和常见第三方库的开发经验,但是对于你的业务和很多非热门的第三方库一窍不通或压根没用过,你需要给他足够的信息和清晰的指示,他才能帮你做开发。

    复杂的可以开 Cursor 的 Plan 模式,讨论清楚 Plan 之后再 Execute 。
    swananan
        9
    swananan  
       66 天前
    @metmit codex 和 cc 你都可以当做同事来看待了,给足了背景和需求,以及排查和获取信息的方式,他们就可以自己推进下去,哪怕复杂的功能,只要思路和排查方式靠谱,他们也会靠谱的搞定
    metmit
        10
    metmit  
    OP
       66 天前
    @liyafe1997 听起来倒是懂了,但是实际怎么做效果如何需要我自己去实验了,改天我用开源项目试试
    metmit
        11
    metmit  
    OP
       65 天前
    @swananan emmm ,只给排查方式怕是不够吧,并发/偶现问题需要自己在怀疑的位置打日志,内存问题需要借助 valgrind/asan 等工具,更麻烦的就是一些编译器行为带来的问题,光看代码不够用
    swananan
        12
    swananan  
       65 天前
    @metmit
    如果你给了 codex 具体编译方式( codex 就会自己在怀疑的位置加日志)、怎么运行 asan 版本、怎么复现问题、在哪里查看信息。codex 完全可以自己分析出来根因。
    哪怕是编译器行为的一些问题,我觉得 codex 比我更懂编译器,能比我想得更多。

    我最近两个月写了一个基于调试信息,来动态生成 eBPF 字节码来追踪用户态进程的项目 https://github.com/swananan/ghostscope
    基本代码都是 codex 完成,当然我负责技术方案和细节确认,以及困难兜底。虽然目前还有不少 bug (我还在修)。还是那句话,我觉得带着 codex 写项目,基本就是相当于带着技术团队,自己是架构师的角色,还蛮爽的。
    swananan
        13
    swananan  
       65 天前
    你可以看看这篇文章 https://mp.weixin.qq.com/s/tewBKHgbyrjxUjAOmkXI7A
    现在 AI 工具能力不仅仅只是静态分析代码
    metmit
        14
    metmit  
    OP
       65 天前
    @swananan 这么强大!我孤陋寡闻了,我要找时间试用一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3349 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 00:39 PVG 08:39 LAX 16:39 JFK 19:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86