追求AI编程完全自动化可能导致代码难以维护。一种更务实的做法是,通过少量人工干预设计代码框架,让AI在清晰的结构内生成模块化、可测试的代码,从而实现对AI输出的精准控制,提升项目长期稳定性。
智能速览
该方法源于Spec Coding,但更注重少量人工代码介入。
通过模块化设计,让AI生成的代码结构清晰且易于维护。
实测Token消耗仅为传统方式的三分之一,成本更低。
将可测试逻辑剥离,AI可自行编写单元测试验证正确性。
这种实践能强制开发者提升问题拆解和架构设计能力。
精华内容
实现AI高效编程,关键不在于完全替代人类,而在于如何精准地引导AI。一种被称为‘代码即规格说明书’的实践,为此提供了具体思路。
需求分块细化
与传统一次性写完所有需求不同,该方法建议将功能模块拆分,逐块编写需求文档。例如在开发战棋游戏时,优先完成核心战斗场景的需求定义。这一阶段不必追求完美,可以利用免费的AI工具(如ChatGPT或Gemini网页版)通过问答形式,逐步将需求细化到足以支撑后续开发的程度,有效降低前期沟通成本和AI理解偏差。
核心框架构建
此流程最关键的一步是构建只包含接口和数据结构的框架代码,不包含任何实现逻辑。设计时需遵循四大原则:将项目拆分为千行以内的小模块;确保模块功能单一;剥离出可自动测试的逻辑;模块间只依赖接口而非实现。
以卡牌战棋游戏为例,可将系统拆分为战斗状态层(纯数据存储)、行动层(规则逻辑)、事件处理层(逻辑与画面桥梁)和界面控制层(封装屏幕组件)。这种分层设计让每部分职责明确,为AI精准实现和自动化测试奠定了坚实基础。
自动化测试驱动
清晰的模块化设计极大地降低了AI犯错的可能性,原因在于模块体量小,上下文关联少,且核心逻辑均可自动测试。
战斗状态层仅涉及数据读写,几乎无需测试。行动层因与界面完全解耦,AI可轻松编写单元测试,独立验证逻辑正确性。事件处理层通过Mock(模拟)技术替换真实界面组件,同样可实现自动化测试。唯一需要人工介入的是界面控制层,但其功能简单,出错概率低,可在整体集成测试时一并验证。
AI实现与约束
框架搭建完成后,便可让AI逐个模块进行实现和测试。开发者无需逐行审查代码逻辑,只需关注其是否偏离了预设的框架设计。
当发现AI未按预期执行时,例如随意增加接口,应将约束规则明确写入配置文件(如ClaudeCode的CLAUDE.md)。通过这种方式,与AI建立共同理解,即使出现bug,其定位也十分明确,从而将AI变为一个可控且高效的代码生成工具。
这种编程实践的价值不仅在于产出更高质量的代码,更在于它强制开发者进行结构化思考和问题拆解。在AI时代,这种设计和架构能力将成为区分专业与业余的关键。未来AI是否会取代人类的架构设计能力,值得持续探讨,但掌握如何高效‘指挥’AI,无疑是当下的核心技能。