架构重构内功心法
极客时间:《从 0 开始学架构》:架构重构内功心法第一式:有的放矢
极客时间:《从 0 开始学架构》:架构重构内功心法第二式:合纵连横
极客时间:《从 0 开始学架构》:架构重构内功心法第三式:运筹帷幄
相比全新的架构设计来说,架构重构对架构师的要求更高,主要体现在:
- 业务已经上线,不能停下来
- 关联方众多,牵一发动全身
- 旧架构的约束
架构重构对架构师的综合能力要求非常高,业务上要求架构师能够说服产品经理暂缓甚至暂停业务来进行架构重构;团队上需要架构师能够与其他团队达成一致的架构重构计划和步骤;技术上需要架构师给出让技术团队认可的架构重构方案。
架构重构内功心法第一式:有的放矢
期望通过架构重构来解决所有问题当然是不现实的,所以架构师的首要任务是从一大堆纷繁复杂的问题中识别出真正要通过架构重构来解决的问题,集中力量快速解决,而不是想着通过架构重构来解决所有的问题。
架构师需要透过问题表象看到问题本质,找出真正需要通过架构重构解决的核心问题,从而做到有的放矢,既不会耗费大量的人力和时间投入,又能够解决核心问题。这对架构师的分析和判断能力要求非常高,既不能看到问题就想到要架构重构,也不能只是针对问题进行系统优化,判断到底是采取架构重构还是采取系统优化,可能不同的架构师和团队都有不同的看法。这里分享一个简单的做法:假设我们现在需要从 0 开始设计当前系统,新架构和老架构是否类似?如果差异不大,说明采取系统优化即可;如果差异很大,那可能就要进行系统重构了。
有的放矢,需要架构师透过问题表象看到问题本质,找出真正需要通过架构重构解决的核心问题,而不是想着通过一次重构解决所有问题。
架构重构内功心法第二式:合纵连横
合纵
架构重构是大动作,持续时间比较长,而且会占用一定的研发资源,包括开发和测试,因此不可避免地会影响业务功能的开发。。因此,要想真正推动一个架构重构项目启动,需要花费大量的精力进行游说和沟通。指要和利益相关方沟通好,让大家对于重构能够达成一致共识,避免重构过程中不必要的反复和争执。
在沟通协调时,将技术语言转换为通俗语言,以事实说话,以数据说话,是沟通的关键
连横
除了上面讨论的和上下游沟通协调,有的重构还需要和其他相关或者配合的系统的沟通协调。
有效的策略是“换位思考、合作双赢、关注长期”。简单来说就是站在对方的角度思考,重构对他有什么好处,能够帮他解决什么问题,带来什么收益。
架构重构内功心法第三式:运筹帷幄
架构师在识别系统关键的复杂度问题后,还需要识别为了解决这个问题,需要做哪些准备事项,或者还要先解决哪些问题。这就要运筹帷幄
采取这样一种策略,主要还是为了集中有限的资源,某个阶段集中解决某一类问题。
总结一下重构的做法,其实就是“分段实施”,将要解决的问题根据优先级、重要性、实施难度等划分为不同的阶段,每个阶段聚焦于一个整体的目标,集中精力和资源解决一类问题。这样做有几个好处:
- 每个阶段都有明确目标,做完之后效果明显,团队信心足,后续推进更加容易。
- 每个阶段的工作量不会太大,可以和业务并行。
- 每个阶段的改动不会太大,降低了总体风险。
如何指定“分段实施”的策略呢?
- 1、优先级排序
将明显且又比较紧急的事项优先落地,解决目前遇到的主要问题。 - 2、问题分类
将问题按照性质分类,每个阶段集中解决一类问题。 - 3、先易后难
采取“先易后难”的策略,能够很大程度上避免“先难后易”策略的问题。 - 4、循序渐进