Skip to main content

[微前端] 架构前期准备

架构师分类

系统架构师, 应用架构师, 业务架构师

系统架构师

从系统的维度, 负责整体系统的架构设计. 主要是基础服务和各系统间协调, 着眼全局. 比如关注负载, 可靠性, 伸缩, 扩展, 整体项目切分, 缓存应用等方面的基础架构设计.

应用架构师

从应用程序的维度, 负责某个应用的技术架构, 主要偏业务系统. 关注理解业务, 梳理模型, 设计模式, 接口, 数据交互等方面.

业务架构师

从业务流程的维度, 关注某一个行业, 业务的领域分析, 获取领域模型, 最终获得系统的模型. 也可以叫业务领域专家, 行业专家, 产品咨询师, 资深顾问

技术前期准备

技术选型

社区氛围, 发展规模, 未来发展趋势, 与当前团队的契合度, 执行成本, 维护和迁移成本, 执行效率等内容的调研和报告.

技术优化

在架构发展过程中, 可能会存在一些有悖于当前架构设计的实现, 造成了架构发展阻塞, 所以需要进行架构优化, 使架构设计的适应性更高.

架构优化

比如所有的函数都放到一个文件中, 不利于代码书写和查错, 就需要按照功能来划分, 比如 router 文件夹, lifecycle,store 文件夹这样划分

架构不是一蹴而就的, 在业务发展过程中, 架构也在不断演进. 对架构设计进行实时调优, 使架构优化成为常态化. 通过不断的调整架构实现, 改进初始架构中设计的不足, 补足短板.

技术债务

技术债务产生原因

  1. 开发过程中因为时间紧迫导致的实现不合理

  2. 暂时没有想到更好的实现方式而妥协的版本, 比如刚开始使用 if ... else 实现

  3. 架构设计前期没有考虑到的细节. 比如项目刚开始组件层级比较浅, 使用 props 传递参数还 ok

  4. 不合理的交互设计, 导致技术实现复杂

  5. 旧功能文档缺失, 无正确拓展, 修改和兼容旧功能, 导致上线后问题剧增.

不修复可能产生的后果

  1. 修复变重构

  2. 影响开发速度

如何解决避免这种问题

  1. 优秀的架构设计是基础

  2. 必须能够有效处理当前需求可预见的情况, 对于未知的, 可能出现的特殊情况, 很小的改动就能解决问题

  3. 根据业务, 进行合理的项目拆分, 尽量的代码解耦

  4. 必须有日志模块, 操作日志, 错误日志, 业务日志等

  5. 良好的技术培训和传帮带能力

  6. 让每一位开发者可以从更深一层次理解自己所需要实现的功能

  7. 从最开始的代码规范, 到熟悉业务, 最后再到编写文档

  8. 充分的技术方案可避免一部分技术债务的产生

  9. 与他人的 code review

崩溃预防

架构崩溃是严重的架构设计事故, 也是我们需要预防的关键所在

  • 对脏数据进行兜底和检验

  • 单元测试

  • 崩溃报警

  • 自动化测试

  • 更广的灰度触达

--------------------------------

系统重构

架构不是永恒不变的. 架构也是具有生命周期的, 也会经历初生, 发展, 巅峰, 衰弱, 消亡的过程

什么是重构

对软件内部结构的一种调整

重构目的:

在不改变软件可观察行为的前提下, 提高其可理解性, 降低其修改成本

重构理念

运用大量微笑且保持软件行为的步骤, 一步步达成大规模的修改

重构流程

确定问题点, 确定重构功能和范围 --> 旧架构设计和逻辑梳理 --> 稳定性保证 --> 性能保证 --> 需求过程中的冲突问题