Skip to content

跨领域综合案例三:一次完整的技术选型

本案例串联 业务洞察(L01)+ 团队领导力(L02)+ 技术战略(L03)+ Node.js/BFF(E10)+ 数据与状态管理(A05) 五个领域,通过一个面向商家的 SaaS 平台技术选型项目,展示架构师如何在复杂约束下做出最优决策。


一、业务背景与目标

1.1 项目背景

公司计划开发一个面向商家的 SaaS 平台,核心功能包括:

  • 商家管理商品、订单、客户。
  • 商品页面需要被搜索引擎收录(SEO)。
  • 商家网络环境可能较差,需要快速首屏加载。
  • 未来可能扩展移动端 H5 和小程序。

1.2 业务 KPI

指标目标
首屏加载时间< 2s(3G 网络)
SEO 收录率商品页 100% 可被搜索引擎抓取
开发周期4 个月内上线 MVP
未来 1 年用户增长10 万商家
单用户获客成本低于行业平均 20%

1.3 约束条件

  • 团队 8 人,6 人熟悉 React,2 人熟悉 Vue。
  • 缺少专职运维人员。
  • 数据安全要求高,涉及商家经营数据。
  • 预算有限,希望控制基础设施成本。

二、候选方案与 POC 验证

2.1 候选方案

方案技术栈优势劣势
ANext.js + VercelSEO 优秀、Server Components、托管省心成本随流量增长、数据合规风险
BReact + 自研 BFF + 阿里云可控性强、成本可预测运维负担重、开发周期长
CVue + Nuxt.js部分团队熟悉、生态成熟SEO 和性能略逊于 Next.js

2.2 POC 验证结果

为三个方案各实现了一个商品详情页原型,测试数据如下:

指标方案 A(Next.js + Vercel)方案 B(React + BFF)方案 C(Nuxt.js)
Lighthouse 性能分数968288
首屏时间(3G)1.6s2.4s1.9s
构建时间45s90s60s
部署复杂度
运维成本中(按量计费)高(需自建运维)
SEO 支持优秀良好良好

2.3 团队评估

维度方案 A方案 B方案 C
团队熟悉度7/108/107/10
学习成本中(App Router、Server Components)
招聘难度
长期维护成本

三、技术选型评分卡

维度权重方案 A方案 B方案 C
SEO 支持20%1089
首屏性能20%1068
开发效率15%958
团队熟悉度15%787
可扩展性15%897
成本10%687
生态成熟度5%988
加权总分100%8.857.157.75

评分说明:每项满分 10 分,权重反映业务优先级。方案 A 在 SEO 和首屏性能上优势明显,但成本略高。


四、架构决策会议纪要

4.1 参会人员

  • 前端架构师(主持人)
  • 后端负责人
  • 产品经理
  • 技术总监
  • 安全合规负责人

4.2 关键争议

争议点支持方反对方最终决策
是否用 Vercel 托管?前端团队、产品安全合规混合方案:页面托管在 Vercel,敏感数据走私有 BFF
Server Components 是否激进?前端架构师部分开发同学试点使用:核心商品页用 RSC,管理后台用 CSR
自研 BFF 还是 Next.js API Routes?后端团队前端团队Next.js API Routes 作为轻量 BFF,复杂业务由后端服务处理

4.3 决策结论

最终选择:方案 A(Next.js + Vercel),但做了以下调整:

  • 页面渲染和托管使用 Vercel。
  • 敏感数据(订单、支付、商家信息)不经过 Vercel Edge,通过私有 BFF 处理。
  • 使用 Next.js API Routes 作为轻量 BFF,负责接口聚合和数据脱敏。

五、架构设计

5.1 数据层设计(A05 数据与状态管理)

状态类型技术说明
服务端状态TanStack Query商品、订单、客户列表数据
全局状态Zustand用户信息、权限、主题
表单状态React Hook Form + Zod商品发布、订单筛选
URL 状态Next.js App Router筛选、分页、排序

5.2 BFF 设计(E10 Node.js / BFF)

商家浏览器


Vercel Edge(Next.js)

    ├── Server Components 渲染页面

    └── API Routes(轻量 BFF)

            ├── 聚合商家服务
            ├── 聚合商品服务
            ├── 聚合订单服务
            └── 数据脱敏 + 鉴权


            私有后端服务集群(阿里云)

5.3 安全与合规设计

风险缓解措施
商家数据经过 Vercel敏感接口走私有 BFF,Vercel 只渲染公开页面
API 鉴权JWT + Refresh Token,BFF 统一校验
数据脱敏BFF 层对手机号、地址等字段脱敏
合规审计所有敏感操作记录审计日志

六、落地路径与里程碑

第 1 个月:团队培训 + Next.js App Router 试点
第 2 个月:基础架构搭建 + 共享组件库 + BFF 接口设计
第 3 个月:核心功能开发(商品、订单、客户)
第 4 个月:性能优化 + 安全审计 + 灰度发布

6.1 培训计划

  • 2 人深入学习 Next.js App Router 和 Server Components。
  • 全员学习 React Server Actions 和 Suspense 边界。
  • 安全合规培训:数据分类、脱敏规则、审计要求。

6.2 风险与缓解

风险可能性影响缓解措施
团队不熟悉 Next.js App Router预留学习时间,先在小项目试点
Vercel 成本随流量增长评估自托管或混合部署方案
数据安全合规敏感数据不经过 Vercel Edge
第三方依赖风险锁定版本,定期安全扫描

七、ADR 输出

参考 templates/ADR-TEMPLATE.md 输出正式决策记录:

markdown
# ADR-003:商家 SaaS 平台前端技术选型

## 背景
需要为商家 SaaS 平台选择前端技术栈,要求 SEO 友好、首屏快、开发效率高。

## 备选方案
1. Next.js + Vercel
2. React + 自研 BFF + 阿里云
3. Vue + Nuxt.js

## 决策
采用方案 1(Next.js + Vercel),敏感数据通过私有 BFF 处理。

## Trade-off
- 获得更好的 SEO 和首屏性能。
- 增加对 Vercel 和数据合规的关注。
- 团队需要学习 Next.js App Router。

## 状态
已采纳

## 决策人
前端架构师、技术总监

## 日期
2026-03-15

八、项目成果(假设数据)

指标预测/实际
MVP 上线时间4 个月
商品页 SEO 收录率> 95%
首屏时间(3G)1.5s
开发效率提升约 30%(相比自研 BFF)
运维人力投入0.5 人/月

九、总结

技术选型不是技术问题,而是业务、团队、成本、风险的综合权衡。一个好的架构师:

  • 先理解业务需求和非功能性需求。
  • 用 POC 和数据说话,而不是凭感觉。
  • 考虑团队能力和成长路径。
  • 关注安全、合规和长期成本。
  • 输出清晰的 ADR,让决策可追溯。

本案例的关键启示:没有完美的技术方案,只有最适合当前约束的方案。Next.js + Vercel 在 SEO 和性能上最优,但需要通过私有 BFF 和数据隔离来弥补安全和合规风险。


涉及领域:E10 Node.js/BFF、A05 Data & State、L01 Business、L02 Team、L03 Strategy
最后更新:2026-06-24

基于 MIT 协议发布