架构重构技巧
创始人
2024-03-05 02:01:45
0

架构重构定义

代码重构

定义

对软件代码做任何改变以增加可读性或者简化结构而不影响输出结果

目的

增加可读性、增加可维护性、可扩展性

关键点

  1. 不影响输出
  2. 不修正错误
  3. 不增加新的功能性

架构重构

定义

通过调整系统结构(Rank、Role、Relation、Rule)来修复系统质量问题而不影响整体系统能力

目的

修复质量问题(性能、可用性、可扩展。。。)

关键点

  1. 修复质量问题,提升架构质量
  2. 不影响整体系统功能
  3. 架构本质没有发生变化

代码重构vs架构重构

代码重构架构重构
基本做法调整代码调整架构
目的优化代码,增加代码的可读性、可维护性、可扩展性修复架构质量问题
是否修复问题
是否改变系统能力
手段引入设计模式引入缓存,分库分表

架构重构技巧

架构重构手段

在这里插入图片描述

技巧

技巧1-先局部优化后架构重构

局部优化

定义

对部分业务或者功能进行优化,不影响系统架构

常见手段
  1. 数据库添加索引,优化索引
  2. 某个数据缓存更新策略采用后台更新
  3. 增加负载均衡服务数量
  4. 优化代码里面并发的逻辑
  5. 修改InnoDB buffer pool配置,分配更多内存
  6. 服务间的某个接口增加参数

架构重构

定义

优化系统架构,整体提升质量,架构重构会影响架构的4R定义

常见手段
  1. 引入消息队列(增加Role)
  2. 去掉Zookeeper,改为内置的Raft算法实现(删除Role)
  3. 将Memcached改为Redis(改变Role)
  4. 按照稳定性拆分微服务(拆分Role)
  5. 将粒度太细的微服务合并(合并Role)
  6. 将服务间的通信方式由HTTP改为gRPC(修改Relation)
  7. SDK从读本地配置文件改为从配置系统读取配置(修改Rule)

技巧2-有的放矢

要素

明确目标

不要试图解决所有问题,抓住关键问题

技巧

问题分类:问题收集列表可能有100条,不要全部想着通过架构重构解决,分门别类,找出需要架构重构解决的问题

明确时间

要有明确的时间点和里程碑,不要说“慢慢优化”

技巧

独立版本:不要混在业务版本里面做架构重构,否则不好协调资源

明确结果

需要有量化的指标来衡量,不能说“提升xxx质量”

技巧
  1. 先收集系统已有相关数据,适合项目投入、时间等
  2. 调查问券:适合效率、复杂度等

案例

在这里插入图片描述

  1. 开发效率很慢,P业务和M系统互相影响
  2. 线程问题很多,尤其是数据类问题
  3. M系统性能很低

在这里插入图片描述

有的放矢:重构只解决第1个问题

技巧3-合纵连横

要素

合纵

说服业务方和老板

以数据说话

把“可扩展性”转换为“版本开发速度很慢”,然后给出对应的项目数据

以案例说话

如果没有数据,就举极端案例,例如某个小功能,开发测试只需要1周,但是因为其他系统等原因,等了1个月才上线

连横

说服其他团队

换位思考

思考对其他团队的好处,才能让人配合

合作双赢

汇报和总结的时候,把其他团队也带上

案例

在这里插入图片描述

合纵:告诉产品经理和项目经理极端案例,设计2周、开发5天、1个月才能上线

连横:P业务线上问题大大减少,P业务不会被其他业务影响

技巧4-运筹帷幄

要素

问题分类

将问题分类,一段时间集中处理一类问题

避免对照Excel表格,一条一条的解决

问题排序

分类后排序,按照优先级顺序来落地

避免见缝插针式的安排重构任务

逐一攻破

每一类问题里面先易后难

把容易的问题解决掉,增强信心

架构重构的一些典型问题

架构重构是否可以引入新技术?—>可以,但尽量少,架构重构要求快准

业务不给时间重构怎么办?—>会哭的孩子有奶吃

其他团队不配合怎么办?—>学会利用上级力量

业务进度很紧,人力不够怎么办?—>收集需要重构的证据,技术汇报的时候有理有据

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...