AI Coding 时代:让写技术方案从未如此简单

45 阅读5分钟

前言:为什么要写技术方案?

让 DeepSeek 总结几条好处:

  1. 明确目标与范围,确保产品、研发、测试、PMO等角色对需求的理解一致
  2. 风险前置管理,提前识别风险,特别是技术风险,方便在特殊情况下寻求协助
  3. 资源优化配置,排期更合理,避免人力过度紧张或浪费
  4. 技术路线可视化,通过架构图、流程图等将抽象方案具象化,降低沟通成本,辅助决策
  5. 降低试错成本,通过方案评审暴露逻辑错误或交互错误,避免开发中途返工。

差不多就以上这些目的,不同的场景还有有一些差异,这里不展开,总得来说,要写好一份“好”的技术方案,需要花不少时间,短则一两天,多则三四天,技术方案越详细,后面开发成本越低,返工概率也越低

AI Coding 时代:开发模式已经发生变化

现在 Cursor、Windsurf、Trae 等 AI 编程工具的出现,已经大大简化了开发流程,大部分情况下,通过与大模型“对话”的方式就完成了大部分的编码工作,从产品需求、技术方案,到生成代码、单元测试等环节,大模型都能覆盖到,在这种场景下,“技术方案”显得没那么必要了,至少一些环节已经显得没那么必要。

技术方案:哪个环节不是很重要?

我们以前写技术方案,那个环节最耗时间,如果是前端的需求,一般就是方案细节的,比如代码目录结构、路由(接口)设计、技术难点分析及解决方案。在 AI Coding 时代,我认为这一步可以大大简化,甚至去掉都可行。

一些 Case

举个例子,产品需求要实现大文件断点续传功能,按照以前,我们需要去 Google 下各种方案,参考各种文章,然后写个伪代码,必要时要要写个简单的 Demo,现在是 AI Coding 时代,我们只需要确定断点续传这个功能是能实现的就可以了,然后让 DeepSeek(这里用 DeepSeek 代替各种 LLM 模型, 我一般用 DeepSeek 分析技术可行性,但不会用它来最终生成代码) 生成一个 Demo,直接贴到文档即可,全程不需要 5 分钟,后续在代码实现的时候,直接让 AI 来写,都可以不用到之前的 Demo 代码。

以上是一个简单的例子,我们确定某个技术是一定能实现的,只是不清楚怎么实现而已,但有些会稍微复杂些,不清楚某个技术难点是否实现,这个时候,也直接抛给 DeepSeek,只要 DeepSeek 认为可以实现,那就基本差不多了。

再举个例子,最近一直在做实时语音的需求,后端会流式返回 PCM 格式的音频数据,需要实时播放,这个功能已经实现了,但是最近后端同学突然说,能否实现 g711a和 g711u 这两种音频格式的播放(它们是 PCM 格式的压缩格式),第一时间我问了 DeepSeek,DeepSeek 说可以实现,而且貌似也很简单,于是就跟后端说,下午给他上线,果然,下午花了不到一个小时就上线了,让 AI 基于现有代码支持上 g711a 和 g711u 这两种格式,基本都不用改一行代码,搞完补充下单词就提 PR 了,后端同学的回复,就两个字:“牛啊”!

还有一些不确定的东西,如果让 AI 自由发挥,可能效果不好,我们可以加上一些技术要求,比如要求用啥技术栈、啥 API 来实现,比如最近有个需求,要显示实时录音的波浪图,引入一个第三方库,有点大材小用,于是就打算用纯原生的来写,第一次让 AI 实现,效果不好,后面问 DeepSeek,它给了几种实现方案,于是我挑选一种(用 Canvas)指定技术方案让 AI 再重新实现,这次实现就很完美了。

总之,一些明确有解决方案的技术问题,基本都不用花太多时间写方案

现代开发流程:先静后动

下面说说我一般开发流程,先说明一下,以下应对的是一些常规的业务需求,而不是那种很有技术挑战性、或者探索性的需求

写方案:侧重交互

现在写技术方案,主要关注 UX 交互这部分,会详细梳理 UX 页面上的交互以及对应的后端接口,目的是后续技术方案评审时,可以拉上 UX 、 PM、QA 等一起确定交互细节,确保大家对需求的理解是一致的,这一步跟之前的没太大区别,也基本没法偷懒。

其它的方案细节,除非有特别要说明,否则一般就简化,或者不写(一般写了也没人看)。当然啦,一些技术选型的,比如有方案一、方案二、方案三等,这些倒是还要写下,不过让 AI 来总结和分析,也是挺快的。

还有一些固定的工作,比如埋点、文案(文案也可以让 AI 来替换了)之类的,这些时间都是可控的,也没涉及技术问题

辩证看待:何时要写详细方案

当然啦,上面的 Case 最多只能覆盖 80%的场景,剩下的 20%的场景就比较难啃了,比如涉及架构方案、多方协作、技术挑战性、探索式的需求,这些技术方案还是得好好写

总结:AI 让开发时间大大缩小

  • UI 还原,虽然 AI 目前还无法 100% 还原,但也能大大简化工作,让 AI 先生成基础代码,然后再根据 UI 微调即可
  • 联调阶段,联调的时候主要是编写接口 API 以及一些状态管理,这些主要使用 Tab 功能
  • 提测阶段,会有大量的 eslint 错误,这些大部分也可以让 AI 来修复,当然啦还是有有不少手工微调的工作,可能也涉及一些重构工作。