版本: v1.0
日期: 2026-02-26
定位: 集团内部为期一周(5 天)的全职前端架构培训课程,兼作后续迭代优化指导方针
对标: Google Engineering Practices / Meta Front-End Infra / 字节跳动 Web Infra / 阿里 ICE 团队
目录
一、培训总览
1.1 培训目标
| 维度 | 目标 |
|---|
| 认知对齐 | 全员理解微前端架构选型、Monorepo 治理、平台化交付的核心理念 |
| 技能落地 | 每人能独立完成子应用接入、跨应用通信调试、基建包使用 |
| 规范内化 | Code Review 时能识别反模式,新代码 100% 符合架构规范 |
| 持续演进 | 理解"度量驱动改进"方法论,能参与架构决策讨论 |
1.2 受众与分级
| 梯队 | 画像 | 人数建议 | 培训后预期 |
|---|
| L1 初级 | 1 年以下前端经验,能写业务页面 | 不限 | 独立完成子应用页面开发,知道数据从哪来、事件往哪发 |
| L2 中级 | 1~3 年前端经验,熟悉 Vue 3 | 核心 | 独立接入新子应用,排查跨应用通信问题,理解架构决策 |
| L3 高级 | 3 年+,有架构能力 | 骨干 | 扩展基础包能力,评估架构演进方案,Code Review 微前端 PR |
1.3 培训设计原则(对标 Google 内训体系)
| 原则 | 说明 | 大厂对标 |
|---|
| Golden Path 黄金路径 | 每个知识点都给出"推荐做法"和"不要这样做" | Google Golden Path |
| Code Lab 动手实操 | 每半天至少 1 个动手练习,产出可运行代码 | Google Codelabs |
| Design Doc 设计文档 | 讲解每个架构决策的 Why/What/How/Trade-off | Google Design Docs |
| Postmortem 复盘 | 用真实踩坑案例讲解,而非理论堆砌 | Google Postmortem Culture |
| Graduated Complexity 渐进复杂度 | Day1 基础 → Day5 架构,不跳级 | Meta Bootcamp |
1.4 日程总览
Week Overview (5 天 × 7 小时/天 = 35 小时)
Day 1 ▎工程化基座 ▎ Monorepo + 基建包 + 开发环境
Day 2 ▎微前端核心 ▎ Wujie 原理 + 通信机制 + 沙箱隔离
Day 3 ▎平台化实战 ▎ 主应用设计 + 子应用接入 + 调试排障
Day 4 ▎质量与规范 ▎ 样式/组件/类型/测试/CI 全链路规范
Day 5 ▎架构演进与展望 ▎ 运维部署 + 度量体系 + 架构决策 + 结业
二、一周教学大纲(Day 1 ~ Day 5)
Day 1:工程化基座(Monorepo + 基建包 + 开发环境)
主题: 让每个人理解"我们为什么这样组织代码"
受众: L1-L3 全员
关键词: pnpm workspace, Turborepo, 基建包工厂模式, 分层配置
上午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 09:00 | 开营 & 架构全景 — 从巨石应用到微前端+Monorepo 的演进路径,治理成果与目标 | 讲解+讨论 | 45min | 02-工程化治理评审汇报版.md |
| 09:45 | Monorepo 基础 — pnpm workspace 原理、Turborepo 任务编排、依赖拓扑 | 讲解+演示 | 60min | 前端架构治理演进规划.md |
| 10:45 | 休息 | — | 15min | — |
| 11:00 | 基建包矩阵 — 12 个 packages 的职责、依赖关系、一句话定位 | 代码走读 | 60min | architecture/03-平台包矩阵建设与开发实施方案.md |
| 12:00 | 午休 | — | — | — |
下午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 13:30 | 基建包设计思想 — 三层配置金字塔、工厂模式、继承+覆盖、逃生舱 | 讲解+代码走读 | 60min | 基建包接入迁移指南.md |
| 14:30 | 🔧 Code Lab 1 — 从零搭建开发环境:pnpm install → 启动主应用 → 启动子应用 → 验证联调 | 动手实操 | 60min | 公共基础资源迁移方案.md §八 |
| 15:30 | 休息 | — | 15min | — |
| 15:45 | 🔧 Code Lab 2 — 基建包体验:修改 @cmclink/vite-config 一处配置,观察所有应用自动继承 | 动手实操 | 45min | 基建包接入迁移指南.md §四 |
| 16:30 | Day 1 复盘 & Q&A | 讨论 | 30min | — |
Day 1 Checklist
Day 2:微前端核心(Wujie 原理 + 通信机制 + 沙箱隔离)
主题: 深入理解微前端运行机制,不再是"黑盒"
受众: L1-L3 全员(沙箱原理部分 L2-L3 重点)
关键词: wujie, alive 模式, bus 通信, props 注入, shadowDOM, iframe 沙箱
上午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 09:00 | 微前端是什么 & 为什么选 Wujie — 方案对比(qiankun/micro-app/wujie/MF),选型决策复盘 | 讲解+讨论 | 45min | training/01-wujie-框架基础.md §1.1 |
| 09:45 | Wujie 核心 API — setupApp/startApp/preloadApp/bus,三种运行模式(alive/单例/重建) | 讲解+代码走读 | 60min | training/01-wujie-框架基础.md §1.2 |
| 10:45 | 休息 | — | 15min | — |
| 11:00 | 通信机制全景 — props 冷启动 vs bus 热更新,SHARED_EVENTS 类型安全,SharedProps 类型 | 代码走读 | 60min | training/02-基础包设计.md §2.2, architecture/CMCLink 微前端状态管理 & 跨应用通信技术方案.md |
| 12:00 | 午休 | — | — | — |
下午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 13:30 | 沙箱原理(L2-L3) — iframe JS 沙箱、WebComponent CSS 沙箱、弹窗逃逸与 teleported=false | 原理讲解+源码 | 60min | training/01-wujie-框架基础.md §1.3 |
| 14:30 | alive 模式深度剖析 — 路由不同步问题、setTimeout 必要性、ROUTE_CHANGE_TO_CHILD 事件 | 案例复盘 | 45min | 微前端路由设计方案 & 子应用管理保活.md |
| 15:15 | 休息 | — | 15min | — |
| 15:30 | 🔧 Code Lab 3 — 通信实战:在子应用中读取 SharedProps → 监听 SHARED:AUTH_UPDATED → 发送 Tab 操作到主应用 | 动手实操 | 60min | training/04-子应用接入实战.md §4.1 |
| 16:30 | Day 2 复盘 & Q&A | 讨论 | 30min | — |
Day 2 Checklist
Day 3:平台化实战(主应用设计 + 子应用接入 + 调试排障)
主题: 从理论到实战,能独立完成子应用接入
受众: L1-L2 重点(L3 旁听+指导)
关键词: shared-provider, tabs.ts, bootstrapMicroApp, 排障手册
上午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 09:00 | 主应用架构 — 4 个核心职责(认证/路由/共享状态广播/Tab管理),shared-provider.ts 设计 | 讲解+代码走读 | 60min | training/03-主应用设计.md §3.1 |
| 10:00 | Tab 管理与路由同步 — TagsView 统一管理、代理模式、keep-alive 缓存同步 | 讲解+场景演练 | 60min | training/03-主应用设计.md §3.2, TagsView 统一管理方案评估.md |
| 11:00 | 休息 | — | 15min | — |
| 11:15 | 子应用接入三步走 — 注册 → 创建 → 配置,bootstrapMicroApp 一行代码接入 | 讲解+演示 | 45min | training/04-子应用接入实战.md §4.1 |
| 12:00 | 午休 | — | — | — |
下午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 13:30 | 🔧 Code Lab 4(核心实操) — 创建 hello-world 子应用:从 apps/template 复制 → 注册 → 配置 → 联调 → 验证 Tab 同步 | 动手实操 | 120min | training/04-子应用接入实战.md, architecture/template-标准入口迁移方案(A方案).md |
| 15:30 | 休息 | — | 15min | — |
| 15:45 | 排障手册实战 — 10 个高频问题逐一复现与解决(弹窗逃逸、401、路由不同步、白屏等) | 场景演练 | 45min | training/04-子应用接入实战.md §4.2 |
| 16:30 | Day 3 复盘 & Q&A | 讨论 | 30min | — |
Day 3 Checklist
Day 4:质量与规范(样式/组件/类型/测试/CI 全链路)
主题: 从"能用"到"好用"到"不出错"
受众: L1-L3 全员
关键词: 样式隔离, 组件分层, TypeScript 规范, ESLint, CI 门禁
上午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 09:00 | 样式架构 — 样式加载顺序、CSS 变量体系、微前端样式隔离策略、禁止事项 | 讲解+代码走读 | 60min | 样式架构重构方案.md |
| 10:00 | 组件设计规范 — 三层架构(@cmclink/ui → @cmclink/biz → 应用层)、命名规范、编码规范 | 讲解+Code Review 演练 | 60min | 组件设计指导方案.md |
| 11:00 | 休息 | — | 15min | — |
| 11:15 | TypeScript 规范 & API 设计 — 类型优先、类型导入、禁止 any、createRequest 插件式架构 | 讲解+代码走读 | 45min | training/02-基础包设计.md §2.4 |
| 12:00 | 午休 | — | — | — |
下午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 13:30 | 国际化 & 图标治理 — i18n 目录规范、翻译 Key 规范、图标统一方案 | 讲解 | 45min | 国际化治理与编辑器配置方案.md, 图标治理方案.md |
| 14:15 | CI/CD 质量门禁 — lint + typecheck + 架构扫描 + E2E 冒烟测试 | 讲解+演示 | 45min | 02-工程化治理评审汇报版.md §8 |
| 15:00 | 休息 | — | 15min | — |
| 15:15 | 🔧 Code Lab 5 — Code Review 模拟:给出 5 个包含反模式的 PR diff,学员按规范找出问题并修复 | 实操+讨论 | 75min | training/05-后续迭代指导.md §5.4 |
| 16:30 | Day 4 复盘 & Q&A | 讨论 | 30min | — |
Day 4 Checklist
Day 5:架构演进与展望(运维部署 + 度量体系 + 架构决策 + 结业)
主题: 从执行者到架构思考者
受众: L2-L3 重点(L1 旁听了解全貌)
关键词: Nginx 网关, Docker/K8s, SLO, ADR, 技术债, 架构演进路线图
上午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 09:00 | 运维部署全景 — 构建产物设计、Nginx 网关层、Jenkins CI/CD 流水线、Docker 容器化 | 讲解+配置走读 | 75min | 微前端运维部署方案书.md §一~七 |
| 10:15 | 休息 | — | 15min | — |
| 10:30 | 灰度发布与监控 — 蓝绿部署、灰度策略、SLO 指标(P95 切换耗时/刷新恢复率)、告警分级 | 讲解+讨论 | 60min | 微前端运维部署方案书.md §九~十一, architecture/06-埋点与可观测扩展接入工程化方案.md |
| 11:30 | 子应用技术债务治理 — 3 个子应用现状分析、渐进式治理策略(Phase 1~4) | 案例复盘 | 30min | 子应用技术债务分析与治理计划.md |
| 12:00 | 午休 | — | — | — |
下午(3.5h)
| 时段 | 内容 | 形式 | 时长 | 对应文档 |
|---|
| 13:30 | 架构决策方法论(对标 Google) — ADR(Architecture Decision Record)、RFC 流程、设计文档模板、Trade-off 分析框架 | 讲解+讨论 | 60min | 需新增 |
| 14:30 | 架构演进路线图 — 短期(基础沉淀)→ 中期(组件化)→ 长期(AI 赋能)、度量驱动改进 | 讲解+讨论 | 45min | 前端架构治理演进规划.md §五 |
| 15:15 | 休息 | — | 15min | — |
| 15:30 | 🔧 Code Lab 6(结业项目) — 综合实操:为一个新业务模块撰写简易 Design Doc → 接入子应用 → Code Review → 部署验证 | 团队实操 | 60min | — |
| 16:30 | 结业总结 & 能力认证 — 培训回顾、考核评估、后续行动项、颁发能力认证 | 讨论 | 30min | — |
Day 5 Checklist
三、文档体系整理与补充任务清单
3.1 现有文档诊断
经过完整梳理,当前 docs/ 目录存在以下问题:
| 问题类型 | 说明 | 影响 |
|---|
| 主题重叠 | 多篇文档覆盖同一主题(如迁移方案有 3 份) | 新人不知道看哪份 |
| 缺少实操教程 | 方案文档多,Step-by-step 教程少 | 培训无法直接使用 |
| 缺少架构决策记录 | 知道"怎么做"但不知道"为什么这样做" | 无法传承决策思维 |
| 缺少度量与 SLO 文档 | 可观测方案有框架但无落地数据 | 无法验证治理效果 |
| 缺少 Code Review 指南 | CR 检查项散落在培训文档中 | 无统一参考标准 |
| 缺少 Troubleshooting 独立文档 | 排障信息散落在多处 | 遇到问题无法快速查找 |
3.2 文档重组方案
将现有文档重组为以下 5 个系列:
docs/
├── 00-README.md ← 文档总入口(替代旧的 01-导航)
│
├── training/ ← 系列一:培训教材(本专栏配套)
│ ├── 00-培训专栏总纲.md ← 本文档的培训大纲部分
│ ├── 01-wujie-框架基础.md ← ✅ 已有,需更新
│ ├── 02-基础包设计.md ← ✅ 已有,需更新
│ ├── 03-主应用设计.md ← ✅ 已有,需更新
│ ├── 04-子应用接入实战.md ← ✅ 已有,需更新
│ ├── 05-后续迭代指导.md ← ✅ 已有,需更新
│ ├── 06-样式与组件规范.md ← ❌ 需新增(合并样式+组件)
│ ├── 07-运维部署实战.md ← ❌ 需新增(从运维方案提炼教程版)
│ └── labs/ ← ❌ 需新增
│ ├── lab-01-环境搭建.md
│ ├── lab-02-基建包体验.md
│ ├── lab-03-通信实战.md
│ ├── lab-04-子应用接入.md
│ ├── lab-05-code-review.md
│ └── lab-06-结业项目.md
│
├── architecture/ ← 系列二:架构设计(决策记录)
│ ├── 01-架构全景与技术选型.md ← ❌ 需新增(合并选型+治理总览)
│ ├── 02-微前端状态管理与通信.md ← ✅ 已有
│ ├── 03-平台包矩阵建设.md ← ✅ 已有
│ ├── 04-子应用渐进式治理.md ← ✅ 已有
│ ├── 05-冒烟测试清单.md ← ✅ 已有
│ ├── 06-埋点与可观测.md ← ✅ 已有
│ ├── 07-架构决策记录(ADR).md ← ❌ 需新增
│ └── 08-架构质量评估报告.md ← ✅ 已有
│
├── guides/ ← 系列三:操作指南(How-to)
│ ├── 01-基建包接入迁移指南.md ← ✅ 已有
│ ├── 02-公共基础资源迁移方案.md ← ✅ 已有
│ ├── 03-子应用技术债务治理计划.md ← ✅ 已有
│ ├── 04-样式架构规范.md ← ✅ 已有
│ ├── 05-组件设计指导.md ← ✅ 已有
│ ├── 06-国际化治理.md ← ✅ 已有
│ ├── 07-图标治理.md ← ✅ 已有
│ ├── 08-微前端路由设计.md ← ✅ 已有
│ ├── 09-Troubleshooting 排障手册.md ← ❌ 需新增(独立化)
│ ├── 10-Code Review 检查清单.md ← ❌ 需新增(独立化)
│ └── 11-性能优化指南.md ← ❌ 需新增(合并两份优化方案)
│
├── operations/ ← 系列四:运维与部署
│ └── 01-微前端运维部署方案书.md ← ✅ 已有
│
├── reports/ ← 系列五:评审与汇报
│ └── 01-工程化治理评审汇报版.md ← ✅ 已有
│
└── archive/ ← 历史归档(只读参考)
├── ... (6 个已归档文档)
└── 99-ARCHIVE.md
3.3 任务清单(按优先级排序)
P0 — 培训前必须完成(影响教学质量)
| ID | 任务 | 产出 | 预估工时 | 状态 |
|---|
| T-01 | 新增 6 个 Code Lab 文档 — 每个 Lab 包含目标、前置条件、Step-by-step 操作、验证标准、参考答案 | training/labs/lab-01~06.md | 3d | ❌ 待做 |
| T-02 | 新增 Troubleshooting 独立文档 — 从培训文档和运维方案中提取所有排障内容,统一编号,添加搜索友好的标题 | guides/09-Troubleshooting.md | 0.5d | ❌ 待做 |
| T-03 | 新增 Code Review 检查清单 — 从 05-后续迭代指导.md 提取并扩展,覆盖通信/子应用/主应用/样式/类型 5 个维度 | guides/10-Code Review 检查清单.md | 0.5d | ❌ 待做 |
| T-04 | 更新培训大纲 — 将现有 training/CMCLink 微前端技术培训大纲.md 适配为一周全职培训版本 | training/00-培训专栏总纲.md | 0.5d | ❌ 待做 |
| T-05 | 新增样式与组件规范培训教材 — 合并 样式架构重构方案.md 和 组件设计指导方案.md 中的教学内容 | training/06-样式与组件规范.md | 0.5d | ❌ 待做 |
P1 — 培训中使用(提升体验)
| ID | 任务 | 产出 | 预估工时 | 状态 |
|---|
| T-06 | 新增架构决策记录(ADR) — 记录 10+ 个关键决策(选 wujie、删 shared-stores、选 UnoCSS 等),每条包含背景/决策/理由/后果 | architecture/07-ADR.md | 1d | ❌ 待做 |
| T-07 | 新增架构全景文档 — 合并选型背景+治理总览+目标架构为一份入门级概览文档 | architecture/01-架构全景.md | 0.5d | ❌ 待做 |
| T-08 | 新增运维部署培训教材 — 从 1300 行运维方案中提炼教程版本(保留核心 Nginx/Docker/Jenkins,去除过多细节) | training/07-运维部署实战.md | 0.5d | ❌ 待做 |
| T-09 | 新增性能优化指南 — 合并主应用和 ibs-manage 两份优化方案为统一指南 | guides/11-性能优化指南.md | 0.5d | ❌ 待做 |
| T-10 | 更新现有 5 篇培训文档 — 对齐最新架构状态(micro-bootstrap 废弃/官方模式回归等) | training/01~05.md | 1d | ❌ 待做 |
P2 — 培训后完善(持续优化)
| ID | 任务 | 产出 | 预估工时 | 状态 |
|---|
| T-11 | 文档总入口重写 — 替代旧的 01-微前端文档导航与阅读路径.md,适配新目录结构 | docs/00-README.md | 0.5d | ❌ 待做 |
| T-12 | 物理搬迁文档 — 按 3.2 节方案移动文件到新目录结构 | 文件移动 + 引用更新 | 0.5d | ❌ 待做 |
| T-13 | 为每份文档添加元信息头 — 统一 版本/作者/日期/状态/受众/阅读时间 格式 | 全部文档 | 0.5d | ❌ 待做 |
| T-14 | 清理过时内容 — 移除已不适用的方案描述(如 Tailwind CSS 4 相关,已迁移 UnoCSS) | 多文档 | 0.5d | ❌ 待做 |
| T-15 | 新增 FAQ 文档 — 收集培训中的高频问题,形成持续更新的 FAQ | guides/FAQ.md | 持续 | ❌ 待做 |
3.4 任务工时总计
| 优先级 | 任务数 | 总工时 |
|---|
| P0 | 5 | 5 天 |
| P1 | 5 | 3.5 天 |
| P2 | 5 | 2.5 天 |
| 合计 | 15 | ~11 天 |
四、后续迭代优化指导方针(对标大厂最佳实践)
4.1 对标框架:Google / Meta / 字节 / 阿里
| 方针 | 说明 | 大厂实践 | CMCLink 当前状态 | 行动项 |
|---|
| 1. Golden Path(黄金路径) | 定义"推荐做法",让 80% 的场景零决策 | Google: 新服务必须走标准模板;Meta: 新组件必须走 Relay 数据流 | 有 bootstrapMicroApp 标准接入,但未强制 | CI 门禁强制检查子应用入口是否使用标准接入 |
| 2. Design Docs(设计文档) | 重大变更先写设计文档,经评审后实施 | Google: Design Doc 是晋升硬性要求;阿里: RFC | 有方案文档但无标准模板和评审流程 | 建立 ADR 模板 + RFC 评审机制 |
| 3. Policy as Code(规则即代码) | 把架构规范编码为自动化规则,而非人工检查 | Google: Tricorder 静态分析;字节: Rush 架构检查 | ESLint 规范已有,架构扫描规则待落地 | 落地 3 条架构扫描(旧桥接/硬编码事件/挂载点) |
| 4. Monorepo Governance | 跨包依赖关系有约束,版本有策略 | Google: 单一主干;Meta: 严格 linting ownership | pnpm workspace + Turborepo 已搭建 | 新增 CODEOWNERS + 包边界检查 |
| 5. Observability(可观测性) | 每个关键路径都有埋点、告警、SLO | Google: SLO 是 SRE 核心;字节: 全链路 TraceID | 埋点适配层已设计,上报未接入 | 优先接入核心 3 个指标(切换耗时/刷新恢复/加载超时) |
| 6. Testing Pyramid | 单元 > 集成 > E2E,底层覆盖率优先 | Google: 80% 单元测试;Meta: Jest + RTL | 几乎无自动化测试 | Phase 1: E2E 冒烟 3 件套;Phase 2: 基础包单元测试 |
| 7. Incremental Migration | 渐进式迁移,永远可回滚 | Google: Strangler Fig Pattern;阿里: 双轨运行 | 已采用渐进式策略 ✅ | 继续保持,每次迁移不超过 1 个子应用 |
| 8. Developer Experience(DX) | 开发者效率是第一优先级 | Google: Build 速度是 P0;Meta: Hot Reload < 1s | Turborepo 缓存已启用,预加载已优化 | 建立 DX 度量:build time / dev start time / HMR time |
| 9. Tech Debt Budget | 每迭代固定比例用于还债 | Google: 20% 创新时间;阿里: 每 Sprint 15% 技术债 | 已提出 15~20% 建议,未制度化 | 纳入 Sprint 计划模板,Tech Debt Ratio 可视化 |
| 10. Knowledge Sharing | 定期技术分享 + 文档即代码 | Google: Tech Talks;Meta: Engineering Blog | 本次培训是首次系统化尝试 | 建立双周技术分享机制 + 培训后持续更新文档 |
4.2 六大方针详细说明
方针一:Golden Path — 黄金路径优先
核心思想(Google 工程实践):为每个常见场景定义一条"推荐路径",开发者不需要做选择题。
在 CMCLink 中的落地:
| 场景 | 黄金路径 | 逃生舱 |
|---|
| 新建子应用 | bootstrapMicroApp() + createChildAppConfig() | extraPlugins 扩展 |
| 跨应用通信 | SHARED_EVENTS 常量 + bus.$on/$emit | 自定义事件(需 CR 审批) |
| HTTP 请求 | createRequest() 插件式工厂 | 直接 axios(需说明理由) |
| 组件开发 | <script setup lang="ts"> + defineProps<T>() | Options API(仅历史代码) |
| 样式编写 | UnoCSS + <style scoped> + CSS 变量 | 行内样式(禁止) |
落地检查:
方针二:Design Docs — 设计文档先行
核心思想(Google Design Docs):任何涉及跨包/跨应用的变更,先写设计文档再写代码。
ADR(Architecture Decision Record)模板:
# ADR-xxx: [决策标题]
## 状态
[Proposed / Accepted / Deprecated / Superseded by ADR-yyy]
## 背景
[什么问题驱动了这个决策?]
## 决策
[我们决定做什么?]
## 理由
[为什么选这个方案?考虑了哪些备选方案?]
## 后果
[这个决策带来的正面和负面影响是什么?]
建议记录的 ADR:
- 为什么选 wujie 而非 qiankun/micro-app
- 为什么删除 shared-stores 包
- 为什么从 Tailwind CSS 迁移到 UnoCSS
- 为什么通信统一使用 wujie bus
- 为什么 micro-bootstrap 回归官方模式
- 为什么选择 alive 保活模式
- 为什么基建包使用工厂模式
- 为什么选择 pnpm + Turborepo
- 为什么 ESLint 使用 @antfu/eslint-config
- 为什么子应用采用渐进式迁移
方针三:Policy as Code — 规则即代码
核心思想(Google Tricorder / 字节 Rush):能自动化的规范就不靠人检查。
CI 门禁分级:
| 级别 | 检查项 | 失败行为 | 当前状态 |
|---|
| L0 必过 | TypeScript 编译、ESLint | 阻断 PR 合入 | ✅ 已有 |
| L1 必过 | 旧桥接 API 扫描(microApp.ts/iframe-bridge.ts) | 阻断 PR 合入 | ❌ 待落地 |
| L1 必过 | bus 事件硬编码扫描(要求常量导入) | 阻断 PR 合入 | ❌ 待落地 |
| L2 推荐 | 组件 scoped 样式检查 | 警告 | ❌ 待落地 |
| L2 推荐 | 挂载点 ID 一致性检查 | 警告 | ❌ 待落地 |
| L3 信息 | Bundle 大小变化报告 | 信息展示 | ❌ 待落地 |
方针四:Observability — 可观测性
核心思想(Google SRE):如果你不能度量它,你就不能改进它。
核心 SLO 指标:
| 指标 | 定义 | 目标值 | 度量方式 |
|---|
| 切换耗时 P95 | 主应用 Tab 切换到子应用渲染完成 | < 1.5s | child_before_load → child_after_mount 时间差 |
| 刷新恢复率 | 深链 F5 后正确恢复到目标页面的比例 | ≥ 99.9% | route_replay 成功/失败计数 |
| 加载超时率 | 子应用加载超过 10s 的比例 | < 0.1% | child_load_timeout 计数 |
方针五:Testing Pyramid — 测试金字塔
核心思想(Google Testing Blog):单元测试多且快,E2E 少且精。
Phase 1(立即):
- E2E 冒烟 3 件套:深链恢复 / 路由同步 / 缓存清理
Phase 2(1 个月内):
- 基础包单元测试:
micro-bridge 事件类型 / micro-bootstrap 生命周期 / api 拦截器
Phase 3(3 个月内):
- 组件测试:
@cmclink/ui 核心组件 Vitest + Vue Test Utils
- 集成测试:主子应用通信链路
方针六:Developer Experience — 开发者体验优先
核心思想(Meta/DX First):基础设施的用户是开发者,DX 就是 UX。
DX 度量项:
| 指标 | 当前值 | 目标值 | 改进手段 |
|---|
pnpm install 时间 | ~60s | < 30s | Turborepo 远程缓存 |
| dev server 启动 | ~8s | < 5s | Vite 7 + 预构建优化 |
| HMR 响应时间 | ~200ms | < 100ms | 减少全局样式依赖 |
| 新子应用接入 | 2~3 天 | < 0.5 天 | 标准模板 + 脚手架 CLI |
| 排障平均时间 | 不确定 | < 30min | 排障手册 + DevTools 插件 |
五、现有文档映射与重组方案
5.1 现有文档 → 新体系映射表
| 现有文档 | 新位置 | 处理方式 |
|---|
01-微前端文档导航与阅读路径.md | 00-README.md | 重写为新体系总入口 |
02-工程化治理评审汇报版.md | reports/01-... | 移动 |
90-微前端文档重复主题合并清单.md | 删除 | 本专栏已替代其功能 |
99-ARCHIVE.md | archive/99-ARCHIVE.md | 移动 |
前端架构治理演进规划.md | architecture/01-架构全景.md | 合并重写 |
基建包接入迁移指南.md | guides/01-... | 移动 |
公共基础资源迁移方案.md | guides/02-... | 移动 |
子应用技术债务分析与治理计划.md | guides/03-... | 移动 |
样式架构重构方案.md | guides/04-... | 移动 |
组件设计指导方案.md | guides/05-... | 移动 |
国际化治理与编辑器配置方案.md | guides/06-... | 移动 |
图标治理方案.md | guides/07-... | 移动 |
微前端路由设计方案 & 子应用管理保活.md | guides/08-... | 移动 |
微前端运维部署方案书.md | operations/01-... | 移动 |
主应用 Dev 模式性能优化方案.md | guides/11-性能优化指南.md | 合并 |
ibs-manage 子应用 Dev 模式性能优化方案.md | guides/11-性能优化指南.md | 合并 |
TagsView 统一管理方案评估.md | architecture/ 或 archive/ | 评估是否还有参考价值 |
微前端架构下的 Axios 请求封装... | guides/ 或 archive/ | 评估 |
training/CMCLink 微前端技术培训大纲.md | training/00-培训专栏总纲.md | 重写为一周版 |
training/01~05 | training/01~05 | 更新内容 |
architecture/ 下 10 个文件 | architecture/ | 重新编号 |
5.2 执行节奏
| 阶段 | 时间 | 内容 |
|---|
| 培训前 1 周 | T-7 ~ T-1 | 完成 P0 任务(Code Lab + 排障手册 + CR 清单 + 培训总纲 + 样式组件教材) |
| 培训中 | Day 1~5 | 使用新文档授课,收集反馈和 FAQ |
| 培训后 1 周 | T+1 ~ T+7 | 完成 P1 任务(ADR + 架构全景 + 运维教材 + 性能指南 + 更新培训文档) |
| 培训后 2 周 | T+8 ~ T+14 | 完成 P2 任务(文档总入口 + 物理搬迁 + 元信息 + 清理 + FAQ) |
六、培训交付物与考核标准
6.1 培训交付物
| 交付物 | 说明 | 所有权 |
|---|
| Code Lab 代码仓库 | 6 个 Lab 的起始代码 + 参考答案 | 基础架构组 |
| 能力认证表 | L1/L2/L3 分级评估结果 | 培训讲师 |
| FAQ 文档 | 培训中收集的高频问题 | 持续更新 |
| 改进建议汇总 | 学员提出的架构改进建议 | 架构委员会 |
6.2 能力认证标准
L1 认证(初级 — 能独立开发)
L2 认证(中级 — 能独立接入)
L3 认证(高级 — 能架构决策)
6.3 培训后持续机制
| 机制 | 频率 | 负责人 |
|---|
| 架构委员会例会 | 双周 | 架构 Owner |
| 技术分享 | 双周(与例会交替) | 轮值 |
| 文档更新 | 每次架构变更后 | 变更者 |
| 能力复评 | 季度 | 培训讲师 |
| 新人 Onboarding | 入职 1 周内 | Buddy + 本专栏 |
附录 A:大厂最佳实践参考索引
| 主题 | 来源 | 关键内容 |
|---|
| Google Engineering Practices | google.github.io/eng-practices | Code Review 标准、CL Description 规范 |
| Google Design Docs | 内部公开方法论 | Design Doc 模板、评审流程 |
| Google SRE Book | sre.google/sre-book | SLO/SLI/Error Budget、Postmortem |
| Google Testing Blog | testing.googleblog.com | 测试金字塔、测试策略 |
| Meta (Facebook) Monorepo | engineering.fb.com | 大规模 Monorepo 治理经验 |
| 字节跳动 Web Infra | 内部分享 | Monorepo 工具链(Rush/Nx 对比)、微前端实践 |
| 阿里 ICE 团队 | ice.work | 微前端方案 icestark、模块联邦实践 |
| Nx Monorepo | nx.dev/concepts | 项目边界、依赖约束、受影响项目分析 |
| Turborepo | turbo.build/repo/docs | 任务编排、远程缓存、增量构建 |
| Module Federation | module-federation.io | 运行时依赖共享、微前端 2.0 方向 |
附录 B:术语表
| 术语 | 含义 |
|---|
| ADR | Architecture Decision Record — 架构决策记录 |
| alive 模式 | wujie 保活模式,子应用切走不销毁,切回恢复状态 |
| bus | wujie 内置 EventBus(window.__WUJIE.bus) |
| Code Lab | 动手实操练习 |
| DX | Developer Experience — 开发者体验 |
| Golden Path | 黄金路径 — 推荐的标准做法 |
| Monorepo | 多包单仓库 — 多个项目共享一个 Git 仓库 |
| Policy as Code | 规则即代码 — 将规范自动化为 CI 检查 |
| Postmortem | 事后复盘 — 故障或问题的根因分析和改进 |
| props | 主应用通过 wujie 注入给子应用的数据(冷启动) |
| RFC | Request for Comments — 技术方案评审请求 |
| shadowDOM | WebComponent 的 DOM 隔离机制 |
| SHARED_EVENTS | 共享状态事件名常量,编译时校验拼写 |
| SLO | Service Level Objective — 服务水平目标 |
| SLI | Service Level Indicator — 服务水平指标 |
| TagsView 代理 | 子应用 Tab 操作通过 bus 代理到主应用统一管理 |
| Tech Debt | 技术债务 — 为了短期交付而积累的架构欠账 |
| Trade-off | 权衡取舍 — 架构决策中的利弊分析 |
本文档是培训专栏的主控文档,所有培训教材、实操练习、考核标准均以此为准。
如有更新,请同步修改版本号和日期。