架构决策与交付
架构决策是在具体约束下安排责任、依赖与退出路径。一个好方案要解释为什么这个边界值得存在、谁拥有状态和权限、怎样观察成效、失败时怎样退回;技术名称只能是实现这些责任的手段。
核心模型
架构决策是在具体约束下安排责任、依赖与退出路径。一个好方案要解释为什么这个边界值得存在、谁拥有状态和权限、怎样观察成效、失败时怎样退回;技术名称只能是实现这些责任的手段。
原理与机制
从证据和约束定义问题
接手旧系统先收集用户故障、交付阻塞、依赖风险、测试缺口和性能基线,把目标写成可验证的行为与指标,并明确不改范围。介绍优化项目同样需交代用户、设备、样本窗口和自己的职责,比较候选方案及未选方案;没有同期对照或分层控制时,应报告相关改善而非编造因果。记录真实收益、代价、遗留问题和团队分工,才能让技术决策接受复查。
权限属于执行边界
多租户系统先区分身份、租户和资源动作。前端能力表控制菜单、路由和按钮,加载前默认拒绝以避免敏感闪现,但真正 API、导出与下载都须服务端授权。用户传来的 role、ownerId 或租户参数不能作为最终依据;操作期间撤权也要在执行时拒绝。切租户、登出和权限改变时隔离缓存、取消请求并妥善处理草稿,不要把完整后端策略复制到前端后任其漂移。验证矩阵应覆盖角色×租户×归属×资源状态。
拆应用先验证组织边界
微前端的理由是稳定业务边界和独立发布生命周期,不是代码目录大。先比较模块化单体和 monorepo,再确认平台维护能力。壳负责入口、路由、身份协议、观测和故障隔离,子应用通过版本化契约通信,避免共用可变全局 store。运行时组合增加远端脚本供应链、重复框架和兼容窗口成本;iframe 的安全取决于来源与 sandbox,Shadow DOM 主要封装样式和结构,不是执行不可信脚本的沙箱。先用低耦合模块试点,并设置退出条件。
渐进改造需要唯一写入口
沿低耦合边界做纵向切片,一阶段尽量只改一类变量。新旧系统可并行读取比较,但不应无条件同时拥有同一业务写权限;适配层定义输入输出与删除条件,防止永久双轨。迁移前补关键契约和端到端测试,列里程碑、责任人、依赖、失败阈值和回退动作。回退还包括资源保留、缓存、数据结构与正在运行的会话,不能删掉旧分块或破坏数据后只说 Git 可以回退。
故障处理完成设计的最后一环
白屏先判断影响用户、版本与开始时间,按权限暂停扩量或回滚并保留证据。沿 HTML→资源→模块执行→接口→渲染分层,检查失败 URL、状态码、响应类型、压缩堆栈和匹配 source map;资源 error、运行时 error 与 unhandledrejection 不是同一覆盖面。按相同缓存和设备重现,测试旧页跨发布、弱网和恢复,最终看任务成功率和错误率是否恢复。复盘将根因变成回归和发布约束,而不只清缓存。
最小示例
json这个决策记录把范围、责任和退出条件绑定起来。观察点不是“使用了新框架”,而是读取结果、隔离和延迟是否满足约定。它没有假造收益百分比;数值与窗口必须在真实基线和业务容忍度确定后填写。
核验:严格JSON解析通过;此例为教学架构决策记录,不是已执行的迁移、授权或性能测试。
边界与取舍
边界
- 隐藏按钮和路由守卫不能防直接调用 API;客户端 token 存在也不等于有资源权限。
- 子应用样式隔离不等于安全隔离,壳与子应用共享可变 store 可能让独立发布失去意义。
- 线上变快可能来自设备占比变化;代码回滚成功也不等于已经写坏的数据恢复。
取舍
- 独立部署减少团队排期耦合,却增加版本、观测、认证协议与故障边界成本;要有持续维护预算。
- 渐进切片降低单次风险,但兼容层会延长双轨期;以明确删除条件避免临时设施永久化。
口述示范
我会以问题证据和约束开始,比较最小可行改动,明确数据与权限责任,按切片建立测试和灰度。结果只报可验证事实,失败有兼容回退与用户恢复证据,而不是罗列工具。
章节练习
参考来源与核验边界
- OWASP:Authorization · 核验 2026-10-04
- MDN:iframe · 核验 2026-10-04
- web.dev:Performance Budgets · 核验 2026-10-04
- Chrome DevTools:Network · 核验 2026-10-04
2026-10-04 核验。示例是教学决策记录而非用户项目事实;微前端具体加载、隔离和路由行为须依所选实现及浏览器核验。
内容版本:2026-10-04.2 · 题目和来源 ID 保持原样,本站不将面经标签解释为企业官方出题或高频保证。