技术设计的隐形杀手:不是需求太多,是聚焦环节缺失

0 阅读5分钟

去年接手一个"死亡项目"——延期8个月,需求变更47次,核心开发走了3个。复盘时我发现一个致命问题:从立项到开发,没有任何一个环节用架构图做需求聚焦

今天从开发视角,拆解架构图如何在技术设计的三个关键节点建立聚焦机制。

1.png


一、节点一:需求澄清——用图消灭"一句话需求"

开发最怕的需求描述:"加个用户画像功能""优化一下查询性能""支持多端同步"。

没有架构图的需求澄清,是语义博弈;有架构图的需求澄清,是空间定位。

聚焦方法:需求"三问落图"

每个需求必须回答:

  1. 落哪? 在架构图的哪个模块、哪一层、哪个接口?
  2. 动谁? 输入变不变?输出变不变?依赖方感知不感知?
  3. 多大? 单模块内改动?跨模块调用?还是新建模块?

案例解析:"优化查询性能"的聚焦过程

原始需求:商品列表页加载慢,要求优化。

未聚焦的开发: 加缓存、加索引、加分页,各改各的,结果缓存和索引策略冲突,分页逻辑和前端对不上。

聚焦后的开发:

第一步:落图定位

  • 商品列表页 → 展示层 → 调用商品服务 → 查询商品库
  • 慢的原因:商品服务做了N+1查询(图上标出:服务层到数据层有循环箭头)

第二步:聚焦方案

  • 方案A(聚焦查询):在数据层加批量查询接口,服务层改循环为批量(改动1个模块)
  • 方案B(聚焦架构):引入商品缓存层,服务层先读缓存(改动2个模块,需考虑一致性)
  • 方案C(聚焦流程):展示层做异步加载,先出骨架屏(改动1个模块,体验不同)

第三步:图上标注

  • 选方案A,图上用绿色标注"批量查询接口",红色标注"原循环查询(废弃)"
  • 同时标注"缓存层(二期考虑)"虚线框

结果: 改动范围清晰,代码review时对着图检查"是否只动了标注区域",回归测试聚焦"批量接口的边界情况"。


二、节点二:方案设计——用图防止"过度设计"和"设计不足"

过度设计的根源: 看不到边界,以为要兼容所有未来场景。 设计不足的根源: 看不到依赖,以为改动只影响眼前模块。

聚焦方法:"影响半径"可视化

在图上以需求落点为圆心,画三层影响圈:

  • 内圈(必改): 落点模块本身
  • 中圈(评估): 直接依赖的模块,需判断接口是否兼容
  • 外圈(知晓): 间接依赖的模块,需确认是否有副作用

案例:微服务拆分中的"用户服务"剥离

需求:从单体中剥离用户服务。

未聚焦的设计: 只画"用户服务"模块,标注CRUD接口。上线后发现:

  • 订单模块调用用户服务查地址,但新服务没提供这个接口
  • 营销模块调用用户服务查标签,但新服务返回格式变了
  • 管理后台直接连用户表,绕过了服务层

聚焦后的设计:

第一步:落图标影响圈

  • 内圈:用户服务(新建)
  • 中圈:订单服务、营销服务、认证服务(接口依赖)
  • 外圈:管理后台、数据报表、定时任务(可能直连数据库)

第二步:逐层聚焦

  • 内圈:定义用户服务边界——只处理"用户核心属性",地址、标签由各自域管理
  • 中圈:订单服务原调用"用户地址" → 改为调用"地址服务",用户服务不感知
  • 外圈:管理后台直连数据库 → 图上标红"技术债",本期不改但纳入监控

结果: 用户服务按时上线,中圈模块平滑迁移,外圈技术债有图可查。


三、节点三:技术债管理——用图聚焦"还哪笔债"

技术债越积越多时,常见的错误是"全面重构"——风险高、周期长、业务等不起。

聚焦方法:图上"债点"优先级排序

在架构图上标注所有已知技术债,按两个维度评分:

  • 痛苦指数: 当前开发被这个债拖累的频率(1-5)
  • 修复成本: 图上影响圈的大小(内圈=1,中圈=3,外圈=5)

案例: legacy系统的5个技术债

image.png 聚焦结论: 先还"数据库无索引"(分最低,收益最快),再处理"单体耦合"和"缓存策略"(分中等,需规划),"API网关"和"日志"(分最高,但收益周期长)纳入长期规划。

这张图让技术债从"感觉很多"变成"先还哪笔"。


四、可复用的聚焦流程配置

我团队现在的技术设计流程: 需求澄清 → 架构落点 → 影响圈分析 → 方案聚焦 → 图上标注 → 代码实现 → 图码对齐review ↑___________________________________________________________↓ (迭代更新)

关键检查点:

  • 需求澄清后:必须有"落点确认单"(模块+接口+改动类型)
  • 方案设计后:必须有"影响圈图"(三层圈+风险标注)
  • 代码review时:必须对照图检查"是否只改了标注区域"

2.jpeg

五、工具边界

团队在用 Arch 快速出草图验证落点,但有个铁律:AI生成的图必须经过"三问落图"才能进入设计。工具帮你快速试错,聚焦的判断必须来自对业务的理解。