DevOps 平台(qiankun 微前端)- Hard-Mode 面试题
覆盖:qiankun 原理、沙箱隔离、样式隔离、通信、独立部署与版本治理、性能与稳定性
1. qiankun 原理与边界
- qiankun 的核心能力是什么?它解决的“根问题”是什么?
- 追问:和 iframe 微前端、module federation 的对比点是什么?
- 子应用是如何被加载、挂载、卸载的?关键生命周期在哪?
- 追问:多次 mount/unmount 后如何保证无泄漏?
- 沙箱机制(Proxy/快照)分别如何工作?你怎么选择?
- 追问:哪些全局副作用无法靠沙箱解决?(如定时器、事件、DOM 注入)
2. 隔离:JS / CSS / 资源
- JS 隔离:Proxy 沙箱的“兼容性与性能”问题你怎么评估?
- 追问:不支持 Proxy 的环境怎么办?降级策略是什么?
- CSS 隔离:命名空间 vs shadow DOM vs CSS Modules 的取舍?
- 追问:第三方 UI 库的全局样式怎么处理?
- 资源隔离:多个子应用重复加载同一依赖怎么处理?
- 追问:共享依赖会引入版本冲突,你怎么治理?
3. 通信与共享状态
- 应用间通信:props / 全局状态 / 事件总线 / storage 各自适用场景?
- 追问:如何避免“隐式耦合”和“全局污染”?
- 跨应用鉴权与权限:你怎么设计让权限逻辑不散落在每个子应用?
- 追问:权限变更如何实时生效?
4. 独立部署与版本兼容
- 子应用独立部署:你们的发布策略是什么?
- 追问:主应用如何选择加载哪个版本(灰度/回滚/紧急禁用)?
- 版本兼容:如何保证主/子应用升级不会互相拖累?
- 追问:接口契约如何管理(schema、openapi、mock、契约测试)?
5. 性能与稳定性治理
- 微前端常见性能问题:首屏变慢的根因是什么?你怎么优化?
- 追问:预加载、按需加载、共享运行时、资源缓存分别怎么做?
- 如何定位“到底是哪个子应用拖慢了整站”?
- 追问:你会如何设计埋点与 trace(按应用维度)?
- 异常隔离:某子应用崩了如何不影响主应用?
- 追问:错误边界、熔断、降级 UI、重试策略怎么设计?
6. Jira 插件/第三方集成
- Jira REST API 集成的鉴权方案是什么?OAuth 的关键风险点有哪些?
- 追问:token 续期、权限最小化、审计日志怎么做?
- Webhook 与数据一致性:如何处理重复事件、乱序、丢事件?
- 追问:幂等键怎么设计?如何补偿?