||
半年前在豆包的推荐下开始使用 Trae IDE 辅助编程,记录一下使用心得。
1. Tab 补全功能的利弊
最基本的功能就是代码补全。最简单的,当你试图打印调试信息,输入 cout 后,它会自动根据上下文猜测意图进行补全,很有眼力价儿。还有,你从一个文件拷贝一段代码到当前位置时,它会自动改写适配,以前需要手动删改的地方现在一键 Tab 就能搞定。
对于常用但记不住的语法命令,比如那些 OpenCV 函数,早年甚至需要打印出小抄放在手边,现在它也会自动补全。纯配置类的任务也变得很省心,如编译工程时候需要写 CMake文件,那些语法我是从来都记不住。现在只要告诉它你的意图,比如依赖库在哪里找、输出的exe放在哪里,它很快就能帮你搞定。
缺点也很明显:这种“聪明”补全也带来很多隐蔽 bug,需要时时监督,做好 code review。
2. 检查 C++ 语法错误
经常使用 Eigen、OpenCV 库,编译时遇到矩阵类型转换之类的语法错误,把 error 信息直接拷贝进提示词窗口,它可以很快帮你解决问题。比如下面是某次对话中它关于一个语法错误的思考过程:
“函数被声明为 static 静态函数,但是在实现中,它试图访问一个非静态成员变量,静态函数不能访问非静态成员变量,因为静态函数不属于任何特定的对象实例。”
要是在以前,修改类似的代码错误可能要花很长时间。
Solo 模式的核心陷阱:目标函数错位。 Trae 的 Solo 模式声称“自主完成编译调试”,但它优化的目标函数是消除 error 和 warning,而不是满足预期行为。它会自己修改代码并编译程序,根据编译错误提示再次修改,直到编译成功。但有时会错得离谱——经过一番折腾,删掉了所有核心代码,终于编译成功,运行结果却并非你想要的。
可见不是所有任务都能交给 AI:
不适合:复杂的逻辑、细微的算法参数、需要根据执行结果反复修改的代码。
正确用法:心里先有预期结果,运行输出不对就打回去。它的自主循环只省了“手动敲编译命令-看报错-改语法”的体力活,逻辑验收永远不能下放。它相当于一个能自己动手调代码的实习生,而你要变成一个好监工。
它特别擅长函数级别的代码补全和修改。这需要把任务分解得足够细,最好到函数级别。先执行第一步,结果无误再指挥它执行第二步。这对使用者的架构设计能力提出了要求,否则代码漏洞百出。
3. 先写文档做提示词
对于一个任务,我的方法是先写一个详细的 Markdown 设计文档。这个文档通常是经过和 DeepSeek、豆包等讨论过很多轮的结果,然后把它作为提示词喂给 AI,越详细越好。
不能简单地下一句话的指令:“给我做一个和微信一样的手机聊天软件”。毕竟它不是你肚子里的蛔虫。
4. AI 编程的价值与警惕
AI 编程很大程度上解决了“眼高手低”的问题——把“手低”的部分接过去了,让人能更专注在“眼高”上。
过去很多人有好的想法,但卡在繁琐的实现细节上,或者因为动手能力不足而放弃。现在有了 AI,这些障碍被大幅降低,让人能把精力集中到更高层次的思考上:读书、推公式、画架构图、思考系统设计。甚至可以说,用了 AI 编程之后,会产生一种自己挺牛逼的错觉。有一点值得警惕:“眼高”仍然需要训练和积累,AI 不能替你长出理论高度。 它解决的是“手低”的问题,让你有时间去提升理论。但如果完全依赖 AI 写代码,自己不再理解底层原理,长期下来反而可能变成“眼也低了”——因为不接触细节,对系统的真实约束会失去感知。
5. 结语
我现在只是使用免费的 Trae(最近好像不排队了),也用过收费的Deepseek模型,Claude、Codex 之类还没有用过,不过觉得已经足够好了。最起码,算法实现起来容易多了。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2026-9-3 15:51
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社