标签

AI辅助编程实战心得总结

发布时间:2026-06-29 12:28阅读:2

从起初的copilot用tab键进行代码补全,发展至如今cursor、claude code、codex等各类编程智能体,几乎每一款我都曾在真实开发任务中实践过,借此沉淀了些个人的AI编程心得,在此撰文与大家交流。

我的工作背景主要侧重于后端研发,对前端等领域的认知相对匮乏。然而依靠AI的辅助,我也能构建出品质尚可的前端应用。在观看了一部关于Nextjs框架的教程后,我对前端的目录架构、App Router以及服务端渲染有了基础认知,随后借助Nextjs搭配shadcn,便能敏捷地打造出交互与颜值均达标的web页面。

接着是产品原型环节,即便如我这般缺乏产品设计经验的开发者,利用lovable、google ai studio等工具,也能便捷迅速地产出精美且具交互性的产品原型图。不过我私人更偏爱在cursor内直接生成html代码来绘制原型,这种方式轻量高效,且掌控感较好,AI大体能依循你的意图用html勾勒原型,你还能通过与AI对话来精准微调原型。

我知晓Spec Coding源于亚马逊的Kiro产品,通俗来讲,Spec Coding就是在敲代码前,先协同AI把需求文档、设计文档和任务文档打磨完善。需求文档旨在阐明究竟要达成何种功能,即最终的目标与准则。设计文档,则更侧重于如何去落地这些需求,例如技术选型、架构规划等。而任务文档便是将这些设计拆解为具体的执行任务。

依我个人实践而言,并未死板遵照其流程去完成这3份文档。但它的核心要义在于编码前与AI进行深度沟通。因为人类语言常常带有模糊性,它不像代码那般具备极强的确定性。我们的构思经由语言传递,再由AI转译为代码,此间信息损耗极大,结果往往与初衷相悖。

在动手编码前,我习惯与AI深入探讨待实现的功能,我尽力用言辞明晰地描绘该功能,最终让AI撰写一份需求文档,该文档囊括功能说明与技术方案,随后我与AI一同修订完善这份文档,我认为一份文档便已足矣。编写此文档有几项益处:首先我们的思绪常有疏漏,在与AI协同完善文档的过程中,能弥补起初未料及的细节,使功能更周全。其次是依托此文档指引AI编程,代码便不会与实际构想偏差太远。再者是若为多人协作开发,同仁们能借此文档快速掌握功能,正所谓"code is cheap, show me your talk!"。

当然,若是修复些微简单的bug,就无需先撰写此文档了,通常简明描述一下bug,附上相关日志,AI便能迅捷将其修复。

在依据此文档让AI编程时,假使是demo项目,让AI一次性产出数百乃至上千行代码,随后粗略检验一番,功能无误即可提交。

然而面对严肃的开发场景,此时便不能再做甩手掌柜,而是需要人工review代码来兜底。可指示AI按部就班地开发,单次产出的代码量不宜过多,一两百行即可,以便人工review。不过,我觉得当前也无需逐行审视代码去人工debug,做到对代码功能有宏观把控足矣。后续我会分享提升AI代码验证效能的经验。

很多时候AI生成的代码无法直接投入使用,甚至会波及原本正常的既有功能。我觉得能够借由梳理代码目录,按模块划分组织代码来规避此问题。譬如针对后端代码目录,依循controllers、services、core、models、clients等目录来编排代码。AI的上下文窗口存在局限,在提供上下文时,可仅向AI提供对应模块最精简的必要上下文,AI生成的代码也仅局限于某个功能模块内。曾听闻一种观点,将代码视作一棵树,让AI去实现叶子节点的功能。

AI生成代码的速率极高,然而人工review代码的速率却极低,若仰仗人工逐行review代码,这必将成为开发流程的瓶颈。可借助单元测试与接口测试来拔高代码验证的效能。在AI生成功能代码后,继续让AI编写该功能的单元测试与接口测试代码,由人工review测试代码,确保自身能想到的测试用例已被覆盖,接着运行测试脚本,校验代码功能。若某用例报错,可直接转交AI,令其修复该部分功能。

在AI编程时代,自动化测试正变得愈发关键,唯有如此方能匹配AI生成代码的速率。坚持编写测试脚本,不但能校验新功能是否达标,还能确保AI生成的代码未损及既有功能,持续积淀测试能力,免于依赖人工重复测试。

代码lint检查,同样能校验代码的正确性。它能排查代码的语法谬误、格式规范等,例如遗漏引号、定义了未使用的变量、导入了未使用的包等。诸多lint工具可自动修复问题,自动格式化代码,使代码规整有序,令强迫症患者也倍感舒适。

昔日曾闻此言,"代码主要是写给人看的,只是恰好能在机器上运行"。我觉得如今可更替为,"代码主要是写给AI和人看的,只是恰好能在机器上运行"。通过lint检查的代码,对AI和人类阅读均更友善,至少看着不像一坨屎山,让人有了读下去的底气。

另有一项窍门是,可借助git pre-commit功能,在提交代码前,自动运行ruff、eslint指令,自动检查并修复代码,提升效率。

借由CI/CD亦可加速代码的验证,在github内可通过.github/workflows/xx.yaml文件来配置CI/CD。我通常会配置几项常用的工作流:测试工作流、lint工作流、镜像构建工作流、自动部署工作流。

测试工作流,自动运行测试脚本、确保提交的代码功能无误。

lint工作流,自动排查代码语法谬误、格式规范等,确保代码风格一致。

镜像构建工作流,自动运行安装依赖、代码编译、构建镜像的逻辑,至少确保代码能够编译通过,例如针对前端项目,保障npm run build是正常的。

自动部署工作流,代码合入主分支后,自动在测试环境更新最新的服务镜像,快捷验证新功能。

这几项工作流,适宜在团队协作开发时启用,每名成员皆使用AI生成海量代码,代码质量难以保障,依托这些自动运行的工作流,在某种程度上,能为代码质量兜底,也能增进代码检测的效率。

CodeRabbit 亦是备受推崇的代码自动review工具,它能便捷地接入GitHub,自动review pr的代码,输出代码改进提议,并给出了修复代码的提示词,可直接复制至cursor,让AI优化代码。实际体验下来发觉CodeRabbit容易吹毛求疵,不过也揪出了内存泄漏等颇为严重的隐患。另外,我留意到众多企业均在研发code review工具,诸如GitHub Copilot、Cursor BugBot、Claude Code Action。 AI正逐渐从编写代码,向整个DevOps流程拓展。

最后再分享一个Claude Code达成自动提交代码的途径,可创建一个"commit"的自定义命令,在命令中清晰描述分支规范、commit log规范等,让claude code阅览变动的代码,自动创建分支、提交代码、创建PR。此外若配置了pre-commit,例如提交前运行lint检查,claude code在察觉未自动修复的lint错误后,还能自动修复错误,全流程极其顺滑。