当前位置: 首页 > news >正文

架构实战——架构重构内功心法第一式(有的放矢)

目录

    • 一、引入前提
    • 二、具体的重构案例
      • 2.1、后台系统重构——解决不合理的耦合
      • 2.2、游戏接入系统重构——解决全局单点的可用性问题
      • 2.3、X 系统——解决大系统带来的开发效率问题
    • 三、具体重构案例总结
      • 3.1、判断到底是采取架构重构还是采取系统优化
      • 3.2、原来发现的那些非架构重构问题怎么办

本文来源:极客时间vip课程笔记

一、引入前提

  • 通常情况下,当系统架构不满足业务的发展时,其表现形式是系统不断出现各种问题,轻微一点的如系统响应慢、数据错误、某些用户访问失败等,严重的可能是宕机、数据库瘫痪、数据丢失等,或者系统的开发效率很低。
  • 开始的时候,技术团队可能只针对具体的问题去解决,解决一个算一个,如果持续了半年甚至一年情况都不见好转,此时可能有人想到了系统的架构是否存在问题,讨论是否是因为架构原因导致了各种问题。一旦确定需要进行架构重构,就会由架构师牵头来进行架构重构的分析。
  • 当架构师真正开始进行架构重构分析时,就会发现自己好像进了一个迷雾森林,到处都是问题,每个问题都需要解决,不知道出路在哪里,感觉如果要解决所有这些问题,架构重构其实也无能为力。
  • 有的架构师一上来搜集了系统当前存在的问题,然后汇总成一个 100 行的 Excel 表格,看到这样一个表格就懵了:这么多问题,要到猴年马月才能全部解决完啊?
  • 期望通过架构重构来解决所有问题当然是不现实的,所以架构师的首要任务是从一大堆纷繁复杂的问题中识别出真正要通过架构重构来解决的问题,集中力量快速解决,而不是想着通过架构重构来解决所有的问题

二、具体的重构案例

2.1、后台系统重构——解决不合理的耦合

  • M 系统是一个后台管理系统,负责管理所有游戏相关的数据,重构的主要原因是因为系统耦合了 P 业务独有的数据和所有业务公用的数据,导致可扩展性比较差。其大概架构如下图所示:
    在这里插入图片描述

http://www.dtcms.com/a/306708.html

相关文章:

  • Effective C++ 条款12:复制对象时勿忘其每一个成分
  • AD里面出现元器件PCB封装不能编辑的情况
  • UE5保姆级新手教程第六章(角色互动)
  • 低成本高可控,TEMU自养号测评的6大核心优势解析
  • 【数据可视化-76】从释永信被查,探索少林寺客流量深度分析:Python + Pyecharts 炫酷大屏可视化(含完整数据和代码)
  • 142页|中型国有企业数字化转型方法论:京东数智化转型解决方案-五化方法论
  • Apache Ignite 集群标识(Cluster ID)和集群标签(Cluster Tag)
  • Python多线程利器:重入锁(RLock)详解——原理、实战与避坑指南
  • 国产音频DA转换芯片DP7361支持192K六通道24位DA转换器
  • AI服务器中,EEPROM有哪些部件使用,需要存储哪些信息?
  • sqli-labs:Less-2关卡详细解析
  • 跨云部署实战:前端、后端 + RSYNC、全栈场景统一落地方案
  • 在macOS上使用VS Code和Clang配置C++开发环境
  • 《解密React key:虚拟DOM Diff中的节点身份锚点》
  • Undo、Redo、Binlog的相爱相杀
  • GIS工程师面试题
  • Java项目:基于SSM框架实现的济南旅游网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 力扣 hot100 Day60
  • Rabbit MQ的消息模式-Java原生代码
  • 发那科机器人P点位置号码自动变更功能为禁用状态
  • 认识ansible(入门)
  • 《嵌入式C语言笔记(十六):字符串搜索、动态内存与函数指针精要》
  • RocketMQ 核心特性解析及与 Kafka区别
  • 思途JSP学习 0730
  • DP-v2.1-mem-clean学习(3.6.7)
  • 片上变化(OCV)
  • 7.Origin2021如何绘制拟合数据图?
  • Python 之抽象方法 @abstractmethod 的理解
  • Day06_C++编程
  • 9《MySQL 教程》MySQL 的数据类型(2)