团队AI编码率稳步提升到89.2%的AIcoding实践分享
__AI应用火爆全世界,近两年不断有新的独角兽涌现,而且估值也是一浪高过一浪。乘着AI应用的浪潮,我们也在潜心专研AI在实际需求编码中的提效应用。经过近1年的探索和实践,逐渐摸索出了一些经验。截至9月底,AI编码采纳率由4月初的9.6%稳步提升至89.2%,需求交付效率提升23.6%。
回顾下我们是怎么完成编码的,首先根据需求分析设计技术方案,然后根据技术方案设计接口协议->写接口文档,再从底层朝上层分模块完成编码工作(以三层架构为例,一般编码顺序为数据层->业务逻辑层->应用层)。在这个过程中为了完成我们AI研发提效的目标需要解决以下几个问题:
带着这几个问题又回到我们实际的研发工作中去,调研下来发现我们团队中的应用基本都是三层架构设计,但不管是几层架构设计,都离不开数据层、业务逻辑层以及应用层,于是围绕三层架构设计形成了一套AI+Prompt+技术方案模版+工程结构的AI编码方案(类似上下文工程,当时还没这个概念)。
AI生成内容的本质是基于概率的推测,所以幻觉是AI的天性,不可避免,只能尽量减少。而我们要的是AI给我们生成确定性的、高质量的内容。这就需要从两方面入手,一方面需要保障我们输入给AI的内容质量;另一方面我们需要提出规范及要求让AI按照我们的预期生成内容,保障AI输出给我们的质量。
1.1、定规范
通过调研不同团队中同学写的技术方案文档,发现大家在业务功能方面描述的内容大同小异,但风格各异、内容质量参差不齐。于是,我们设计了一套技术方案模版,来保障输入给AI的质量,主要解决2个问题:
1.2、提要求
只有技术方案还不足以让AI写出高质量的代码,还需要根据不同分层的编码要求以及规范来约束AI生成代码的质量。将我们在编码中积累的经验及要求沉淀到Prompt中来指导AI编码。经过不断的调试和优化最终形成了一套结构化的能实现完整编码流程的Prompt。
类似我们在一个不熟悉的工程里写代码,AI怎么知道应该将生成的代码放在哪里呢。这时候就需要了解工程结构,我们同样把工程结构用AI生成出来,确认无误后再给到AI。但由于种种原因,我们的某些工程结构早已偏离了当初的定位,这时候我们就可以通过对工程结构的描述加以修正来重新进行职责定位。例如我这里的domain模块早已弃用,修改描述后AI生成的业务逻辑也不再跟这个模块有关联。
这就涉及到AI任务拆分的粒度问题,粒度太大,无法保障AI编码质量;粒度过小又体现不了AI提效的价值。从一个工程的代码角度来看:工程级->模块级->类级->函数级->代码块级->行级,编码粒度依次更细微。当时插件类AI工具只有Chat会话模式,还不具备Agent能力,工程级和模块级代码编写是不可能的,那最大粒度就是类级别了,对应技术方案中“领域服务”以及“服务接口”两列。在让AI编码的时候就是分层次分领域按照类级别功能分配任务。
实践探索只是过程,我们的目标是把AI编码经验推广给团队成员,帮助他们低成本的使用AI进行编码提效。这就要求我们的编码实践经验是可复刻的、且是轻量的,换一个同学按照同样的方式一样能够高效的产出高质量的编码效果。
显然,业务逻辑在每个需求中都是不一样的,需要单独抽离出来,可以使用技术方案模版来承载,以保障给到AI的内容质量。不变的是我们对AI编码的质量和要求,通过Prompt提示词来承载。Prompt提示词按照架构设计的思想,采用分层分模块的结构化设计,把我们的研发规范和要求都结构化沉淀到Prompt,方便扩展和调优。另外,Prompt不涉及任何业务逻辑,这就保障了Prompt的质量和可复用性。其他同学在使用AI编码的时候只需要引用对应的Prompt,必要时微调即可。
至此,我们形成了一套高质量的体系化的AI+Prompt+技术方案模版+工程结构的AI编码方案。
以上实践是基于技术方案模版中的demo示例探索的,那么应用到线上真实需求效果如何呢?我们找了一个全新功能的产品需求,按照上述方案上线了第一个需求,AI代码生成占比保守估约70%+
案例:
项目背景:商家设置了起送价,但用户订单金额低于起送价,需要支付一定的配送费,产品上需要新建低起送价运营平台。
功能说明:
1、数层新增表5张;
2、5个领域服务的增删改查及相关业务逻辑。
上面是真实需求发布生产后的业务逻辑层代码片段,lishan.dls签名的都是由AI生成的,manglang签名的是人工修改的。
接下来并没有着急推广,而是继续在其他业务需求进行编码实践,陆续又上线了几个需求,整体体验还不错。至此,这套方案经过了基本的生产需求验证,率先在服务产品团队推广使用。
1.1、结果衡量
既然是AI研发提效,那么提效两个字才是我们关心的终极目标,但是要用什么指标来衡量呢?无论是AI编码采纳率还是AI应用的渗透率等都是过程指标,我们需要一个能直接体验提效的结果指标。思来想去,结合PMO团队对研发效能的衡量标准,最终选择了需求交付效率作为结果指标。
另外,围绕“用起来”和“用的好”,分别从量和质两个维度设定了AI编码的牵引目标,在AI用起来的同时又不能降低了编码的质量。考虑到新事物对大家编码习惯的冲击以及大家的接受认可度,我们没有采取自上而下的命令式推广,而是通过营造AI编码氛围以及最佳实践分享来鼓励和引导大家把AI应用到实际的研发工作中去。
2.1、传帮带
****让大家改变自己的行为习惯没那么容易,于是我又搜集了各个团队的近期需求,找到具体的PM同学,并参与其中的项目开发,一方面可以 One By One 分享AI编码经验,另一方面又可以避免同学们担心需求延期的风险。这种传帮带的结对编程方式后来发现很有成效,这部分同学又把自己的AI编码经验总结成优秀实践,分享给团队其他同学,就这样大家慢慢改变了对AI编码的看法,也渐渐融入并享受AI编码带来的快感。
2.2、优秀实践分享
****这部分先实践的同学也纷纷在团队内组织了AI编码的实践分享,成为AI编码真正用起来的中流砥柱。
2.3、AI先锋激励
为了彰显我们的重视程度以及决心,推出了每月一次的AI先锋团队及个人评优。我们很高兴的看到每期都有新面孔,候选人的名单也越来越长。
既然是研发提效,当然不能仅仅是编码,在整个研发生命周期中我们还积极实践了其他环节的提效。
3.1、AI代码CR
当我们在CR的时候面对几十个文件的修改、成千上万行的代码,我们的内心是崩溃的。一是效率低下,一次CR通常要花费掉我们一到两个小时;二是面对这么细节的代码,我们也不可能面面俱到。有了AI事情就变得轻松了许多,AI在几分钟内就能轻松找到人眼容易忽视的bug、包括逻辑问题,当然也不能完全依赖AI。
3.2、AI机器人运维
运维答疑这些琐碎的事情经常导致我们不能集中精力处理真正的研发工作,甚至会浪费掉我们一天中的大部分时间。现在有了AI,我们很容易将我们的知识文档、排障经验、业务数据给到AI,AI能够很专业的利用这些资料帮助我们完成大部分的解答工作。
上述方案主要聚焦在新增功能的场景编码,对于修改类需求当时还没有优秀实践。另外,写给AI的技术方案是靠纯手工编辑的。为了解决上述问题,我们又提出了AI直接分析需求PRD,然后根据PRD编写技术方案再到AI编码的新方案,进一步提高研发效率。新方案中将需求分为新增类需求以及修改类需求,针对不同类型的需求提出了不同的AI方案。
新增类需求更侧重于设计,于是我们提出了【新增类需求Prompt】+【技术方案模版】来实现方案设计和模块拆分。基于Claude4模型一次生成的技术方案综合评分70+:架构设计、核心业务逻辑及业务规则基本没啥问题,稍做调整即可,另外品牌、连锁、门店三个实体需合并为一个账号实体。直接跟AI讲怎么调整就好了,多次对话交流后效果会更好。下面是根据需求PRD生成的技术方案的部分截图(业务逻辑及业务约束描述的还是比较清晰明确的):
修改类需求更偏向梳理,我们提出了先按应用拆分PRD,然后按照【修改类需求Prompt】+ 工程代码设计技术方案。同样基于真实需求使用Claude4生成的技术方案:从需求功能分析到代码梳理、改动点分析再到方案设计基本都符合预期,综合评分80+。AI编码完整度评分70+,待完成的地方主要是一些未知逻辑的todo,这些逻辑既没有在PRD说明又不在当前代码库。
在编码质量方面,从方案、代码到功能用例我们提出了五道防线并在AI的加持下进行质量保障:
-
技术方案Review:保障需求与技术方案一致性,AI生成技术实现要点及风险帮助我们审视需求(AI辅助)。
-
需求实现Review:保障AI代码实现与技术方案一致性,AI对编写的代码进行总结并与技术方案中的需求功能做一致性分析对比(AI主导)。
-
AI代码CR:保障代码的健壮性,AI按照代码语义Review逻辑以及代码的健壮性找出人眼难以发现的问题(AI主导)。
-
测试用例验证:根据用例自测验证需求功能正确性、非功能需求符合预期,AI帮助我们生成测试用例(AI辅助)。
-
测试质量保障:专业质量同学验证保障需求实现质量,AI重塑测试流程(AI辅助)。
至此,我们形成了一套体系化的高效率高质量的从需求PRD到技术方案再到代码生成、编码质量保障以及线上运维的由AI驱动的研发模式。未来还需要继续紧跟AI技术发展以及集团内外优秀实践,不断演进优化。
在实践过程中我们沉淀了解决不同编码问题的Prompt,这些Prompt本着讲规范、明要求、可复用的原则,不参杂任何业务逻辑,实现快速上手、方便推广。
1、更加丝滑的编码体验
****当前阶段还是人工将任务拆分到不同应用上完成编码工作,未来结合MCP等工具的加持,我们只需要给AI下达一次任务,AI在做好方案后,自动将任务拆分在不同应用不同工程模块中并完成编码工作。当编码AI完成代码工作后再由检查AI进行需求实现质量以及代码质量的检查。最后,我们只需要通过测试用例验收AI编码成果,如果出现bug再交由AI继续迭代。
** 2、研发运维一条龙**
这个阶段就是打通研发生命周期中各个角色分工之间的隔阂,从需求研发到质量测试再到线上运维,全程AI主导。多AI之间相互配合:主AI下发开发任务并根据任务执行反馈决策下一步动作→编码AI进行方案设计和编码→部署AI完成开发环境部署及环境问题解决→质量AI根据测试用例进行功能验收→代码检查AI Review代码质量→部署AI进行生产环境部署→运维AI进行线上答疑及排障。
我们是物流产技团队!这里有复杂的业务场景、高算力的性能挑战、秒级的履约时效要求以及行业领先的即时配送技术。领域深耕的技术大牛、务实自由的成长氛围,一定会给你带来一段价值满满的职业探索之旅。算法、工程、数据、产品大量机会等你来!