前言
最近读到了得物技术团队关于AI编程实践的文章,深感共鸣。文章中提到的很多问题和解决方案,都是我在实际使用AI编程工具时已经遇到和实现过的。本文将结合我的实践经验,分享对AI编程优化路径的思考。
一、核心痛点:上下文切换与协作效率
上下文切换成本高
需求理解→技术选型→代码实现→质量验证,每次切换都要重新构建认知框架。原文提到这个痛点,而我是通过外置文件来解决的。
我的工作流探索
之前使用过一个编程工具,它有内置工作流系统,具有不同的内置角色(产品经理、技术方案人员、设计师、前端等)。
优点:
- 每个角色有明确定义和职责边界
- 每个阶段输出对应文档
- 文档中详细记录责任人和下一个阶段的负责人,防止工作流错乱
缺点(最终放弃的原因):
-
学习成本过高:每个角色定义由文档组成,用户必须了解文档结构才能使用,造成学习门槛过高
-
灵活度差:角色数量和边界固定,与实际需求划分不一致。随着对工作流理解深入,发现限制太大
-
上下文传递问题:由于每个角色职责过大,上一阶段输出的结果文档较长,容易造成上下文丢失,导致实际任务执行效果不理想
-
性价比低:对于个人开发者来说,定义这样的工作流性价比太低。如果有团队可能会考虑设计,但目前没有这个需求
最终我放弃了这个工作流,也没有定义自己的工作流。对我来说,轻量级的方式更合适。
二、AI编程的核心方法论
1. 对话流设计:控制AI思考的艺术
原文提到的三个关键机制:
- 上下文聚焦:单次对话仅处理一个功能模块,避免AI注意力分散
- 约束明确化:通过具体指令减少AI自由度,如"必须复用Y工具类"
- 增量式提问:先框架后细节,类似"先搭骨架再填肉"
我的实践经验:
在对话流设计上,这些方法我已经在另一篇文章中详细描述过。简单来说:
- 每次只处理一个功能模块,避免AI注意力分散
- 约束明确化,避免过于宽泛的约束导致AI实现结果与预期不符
- 提问大框架再填细节,避免前期错误在后续被放大
- 使用plan先进行规划,再用编程模式进行输出
2. 系统提示词:200字的艺术
原文的核心观点:
- 早期系统提示词长达5000字,效果反而不好
- 现在控制在200字以内,只包含最关键的约束和指引
- 三模块结构:能力边界、决策定义、输出规范
实践技巧:
-
避免信息过载
- 不要包含所有知识,而是指引AI去使用对应文档
- 这在我在实践过程中已经用到了:我的定时任务会去读取对应文档中的提示词和检查要求,每个文档都会指引他去别的文档进行下一步操作
- 这种"碎片化拼凑"的思想也是我从Skill中学到的
-
只提供正向引导
- 不仅说"不要做什么",更要明确"应该怎么做"
- 这在昨天阅读的阿里云技术文章中也提到了:正向案例可以避免注意力涣散,详见"白熊效应"
-
动态调整策略(个人认为性价比不高)
- 记录AI最近犯的错误,并补充新的约束
- 对于个人开发者来说,这会占用较大时间:统计和记录、维护本身都比较耗时,且收益不明显
- 最重要的是一个人很可能会忘记这些
3. SKILL与MCP的区别
- Skill:在于把好经验变成可用组件
- MCP:在于让AI能调用外部工具
这点总结得很到位,我在实际使用中也有类似体会。
三、结构化对话设计:三阶段模型
原文提出了"三阶段对话模型",这已经成为他们使用Claude Code的标准流程:
阶段一:需求定义
把"要做什么"说清楚,使用"用户故事+验收标准"的格式描述需求。
阶段二:边界明确
确定"怎么做"的约束条件,明确技术栈选择、架构设计和约束。关键是要区分"必须遵守"和"建议参考"的约束。
阶段三:迭代反馈
在"做的过程"中持续对齐,核心是增量验证:
- 分模块实现,逐个验证
- 关键节点主动暂停
- 持续同步技术方案
瀑布流动过程:需求定义 → 边界明确 → 迭代反馈,依次进行。
四、AI团队协作模式:子代理系统
四个核心子代理角色
文章提到了他们采用的四个子代理角色,按软件开发的自然阶段设计:
- 技术方案架构师:需求分析、技术方案设计、模块划分
- 代码审查专家:代码质量审查,从架构合规性、代码规范和稳定性角度挑毛病
- 代码实现专家:代码实现和单元测试编写
- 前端页面生成器:生成符合规范的前端页面配置
协作核心:共享白板
所有子代理通过共享"技术方案文档"进行协作,这个文档就像团队的"共享白板",包含需求分析、模块划分、实现状态和接口设计等关键信息。
个人思考:这与我开始提到的工作流核心思想十分相似------通过共享文档和明确责任人来实现协作。
质量控制:多层次验证
- 单元测试:交给AI自己
- 集成测试:人工设计
- 代码审查:人机结合
渐进式信任:先从简单低风险的模块开始使用AI,在信任建立后逐步扩展到核心模块。
记录错误模式:记录AI常犯的错误类型,针对性优化系统提示词。
五、实践心得与深刻反思
为什么代码不再是开发的关键?
在最近的技术方向中,我越来越发现:代码不再是开发的关键,思想才是开发的关键。
- AI可以快速生成代码
- 但如何设计系统、如何拆分需求、如何把控质量,这些都需要人类的智慧和经验
- AI编程时代,最有价值的开发者不是"写代码最快的人",而是"最会引导AI、最能把控质量、最能解决复杂问题的人"
认知科学原理
这种结构化对话设计基于对人类认知过程的理解:
- 工作记忆限制理论:AI的上下文理解能力有限,通过分阶段对话控制认知负荷
- 渐进式知识构建:先掌握整体框架再深入细节,符合认知规律
六、AI编程的局限性
文章也清醒地认识到AI编程的局限性:
- 创造性思维不足:AI擅长在已有知识范围内组合优化,但在突破性创新场景下表现有限
- 上下文理解深度有限:对于"牵一发而动全身"的核心模块,AI难以把握深层设计意图
- 质量责任边界模糊:开发者需对AI生成的代码负全部责任
- 领域知识滞后性:AI对内部系统的最新变更反应不够及时
七、未来发展方向
基于实践经验,对AI编程工具的未来发展有几点思考:
- 更智能的上下文管理:自动识别相关上下文、追踪依赖关系,提醒潜在的上下文冲突
- 多模态交互模式:引入图表、流程图等多种交互方式
- 自适应学习机制:从团队使用反馈中学习,适应特定团队的编码风格和业务领域
八、结语
AI编程工具的价值不在于替代开发者,而在于构建人机协作的新型开发范式。
在这种范式下:
- 人类开发者从繁琐的重复劳动中解放出来
- 更专注于需求分析、架构设计和质量把控等高价值创造性工作
- AI则承担起代码实现、文档生成和基础验证等标准化工作
实践启示
在AI编程时代,最有价值的开发者不是"写代码最快的人",而是"最会引导AI、最能把控质量、最能解决复杂问题的人"。
掌握与AI协作的技巧,建立系统化的AI辅助开发流程,将成为未来开发者的核心竞争力。通过合理设计对话流程、明确分工协作和严格质量控制,AI编程工具能够显著提升团队效能,但这需要整个团队在思维方式和工作流程上的共同转变。