一、方法上看有两种
氛围编程与Spec编程代表了AI辅助开发的两种范式:前者采用黑盒式探索,用户通过循环迭代的提示词调整来逐步完善项目;后者则模拟专业团队流程,将用户需求系统性地转化为需求文档、设计文档直至可执行的task.md任务清单,实现了从概念到实施的规范化分解。
二、弊端及解决方法
Spec模式通过steering机制破解了氛围编程的黑盒不确定性与自身上下文错位两大顽疾。
我们在项目根目录建立steering持久化记忆库,其功能类似Cursor rules但突破单文件限制,支持”一文档一功能”的模块化定义——官方推荐product.md(承载用户故事、功能定位)、struct.md(固化目录规范)、tech.md(锁定技术栈)构成黄金三角,用户可按需扩展api标准文档(预置所有接口路径、参数、响应格式,根治我们曾遭遇的前后端联调噩梦)或代码风格文档(分前端后端双轨制定规则,避免AI在旧项目插入新模块时因风格陌生而”瞎编”导致编译爆炸)。将代码不一致风险提前注入生成流程,使风格漂移在萌芽阶段即被强制对齐。
后者的弊端呢就通过steering去解决,每次对话都会先读取这个文件夹下的文件,相当于一个持久化的记忆,这个就相当于cursor的rules,并且可以比它更具体,更多元。具体体现在我们可以生成一个项目的所有接口、请求参数及响应。多元呢,是体现在我们可以在steering下定义很多文件,一个文件实现一个作用。我们steering官方推荐的三个文件,product.md这个是对产品的概述,里边会有故事用例,及功能的描述和项目的定位,struct.md这个是用于描述我们代码的文件目录风格。tech.md这个是对我们技术栈的定位。除此上述三个官方推荐的文档意外,我们自己可以额外引入自定义的文件,遵循一个文档一个功能原则,比如还推荐了api标准文档,里面有每个接口的路径、参数、请求、响应.这个就有效的解决了我们前后端不对应的问题,因为这个是我们在第一次用spec模式的时候没有用steering时造成了很大的困扰,就是前后端接口不对应。还有就是如果你们团队有自己独特的代码风格,我们就可以定义一个代码风格的文档,这个以我看可以分为前端和后端分别编写一些规则,然后去遵顼,这个就会避免我们在我们原有的项目添加模块,但是ai不了解我们的代码风格,就去自己“瞎编”,编译了这个之后我们就会在代码生成的过程中将后续的代码风格不一致造成报错扼杀在摇篮里面
三、下期拓展
展望Spec编程进化,hook触发器与MCP协议将打开新维度:hook作为开发流程的自动化齿轮,可把代码提交、测试失败等事件转化为自动修复任务;MCP则暗藏”薅积分”技巧——利用工具调用响应不扣费的规则,把用户输入伪装成MCP返回数据,实现”一次提问无限回调”。但MCP的model context协议在统一工具共享标准的同时,也暴露出自证陷阱:AI仅凭服务自描述判断功能,却无法审计MCP真实代码,若服务虚报功能实则植入恶意逻辑,便形成新型特洛伊木马。这映射出更宏大的时代焦虑:当马车换汽车,我们拼命考取的AI驾照,究竟通向程序员地位的跃迁,还是驶向自我淘汰的终点?技术洪流里一切确定的答案,终将在不确定中重写。