做了什么
- 平台下挂多个业务子系统,共享同一套底层组件和公共能力
- 重构公共上传组件,统一各子系统的文件上传交互与错误处理
- 沉淀底层组件封装,提高新子系统的搭建效率
背景
这是一个由多个业务子系统组成的一体化协同平台,涉及流程审批、事项流转、工作台等场景。各子系统的界面风格和基础能力需要保持一致,但由不同的人分头开发,很容易各写一套。
做了什么
统一公共上传组件。 原先各子系统各自实现文件上传,交互细节和错误处理都不一样 —— 同一个上传失败,有的地方弹 toast,有的地方静默失败。重构后收敛成一套公共组件,把上传中、失败重试、大小与格式校验这些状态统一处理掉,各子系统只管调用。
沉淀底层组件。 把跨子系统复用的表格、表单、弹窗、查询区封装成基础组件,新子系统接入时直接组合,不用再从零拼装。
技术栈是 Angular + TypeScript + Ant Design。 这个平台是我 Angular 项目经验的主要来源,和平时以 Vue 为主的技术栈形成了互补。
值得一提的
多子系统共存的项目里,「统一」和「灵活」始终是矛盾的 —— 底层组件封得太死,业务稍有差异就得绕过去;封得太松,等于没封。这里的做法是把变化的部分显式暴露成配置项,而不是让各子系统 fork 一份组件自己改。一旦出现 fork,后续所有修复都要重复做 N 遍。