1. 基础概念
1.1 举例
以下场景是否属于技术重构范畴?
- 架构部推进开发语言升级:已有系统从PHP切换到Java;
- 交易链路优化:价格校验逻辑分散在各系统实现,需要整合提供一套能力支持全链路;
- 营销风控系统升级:原本不支持尾款限制优惠,后来增加了尾款限制。
解释:这些场景都属于技术重构的范畴,因为它们都涉及到对现有系统的内部结构进行调整和优化,以提升系统的可维护性、扩展性和性能。
1.2 定义
- 名词:对内部结构的一种调整,在不改变软件外部行为的前提下,重新设计优化,使其更易于阅读、维护、更新;
- 动词:使用一系列重构手段,在不改变软件外部行为的前提下,调整其结构。
解释:重构的核心在于“内部优化”,即在不影响用户使用体验的情况下,对系统的内部结构进行调整,使其更加合理、高效。
1.3 分类
- 平台级:公司级别的、底层基建的升级,如升级RPC框架、数据库、网关等;
- 架构级:通过架构方案的调整和优化,改善现有架构瓶颈及问题;如红包系统数据结构、缓存、服务性能瓶颈,通过重新设计整体架构方案进行改善;
- 业务级:系统因设计不合理,导致部分业务功能耦合或分散,无法或较难满足业务需求,通过调整业务域及边界来解决;
- 示例:订单分账,原有佣金规则和生成分账逻辑耦合,导致逻辑不清晰,新需求支持成本高;解决:梳理佣金规则和分账逻辑,剥离规则部分,使两者解耦,提高复用、灵活性;
- 代码/模块级:某个功能(接口、任务、消息、后台),不同业务场景实现存在重复,通过设计模式、抽象封装、优化拆解代码,提高复用性、可读性,降低维护成本。
解释:重构的分类有助于我们更好地理解重构的范围和层次,不同级别的重构需要不同的策略和资源投入。
2. 为什么要重构
- 业务发展快:原系统设计扩展不足,无法或很困难高效支持业务;
- 系统稳定性差:遇到架构、性能等瓶颈,无法根治;
- 系统底层数据结构、缓存瓶颈:报警频繁;
- 系统从创建后未做过优化升级:充斥着大量不合理代码,亟需治理;
- 同样的逻辑未做收口:分散实现,逻辑不统一,维护成本高;
- 老系统技术陈旧:维护成本高;
重构的唯一目的:让研发开发更高效,用更少的工作量创造更大价值。
解释:重构的动机通常来自于业务需求的快速变化和系统本身的局限性。通过重构,可以提升系统的可维护性和扩展性,从而更好地支持业务发展。

3. 何时重构
3.1 指导原则:三次法则

最低0.47元/天 解锁文章
1115

被折叠的 条评论
为什么被折叠?



