知识卡片

复用的层次演进:技术类复用体系化,业务类复用向中台扩展

结构图卡

内容

复用就是”再次使用”已有事物来实现新目标——就像人类靠发明工具把身体能力和认知能力”分离”并”下沉”下来,从而从繁重劳动中解放出来专注于更擅长的事情,软件系统的复用同样是把某些功能”分离”“沉淀”下来,让架构师和程序员有更多时间思考更重要的事情,而且复用能力提升后上层应用也会更丰富,进而促进开发出更好的系统,二者相互促进。系统代码是”业务+技术”的二元组,复用沿两条主线演进。技术类复用——针对通用的技术部分(公共函数、类、组件包、开发框架、架构模式、平台),演进特征有二:一是从单点向体系化发展(过去复用只针对单一功能,如今Spring Cloud提供整套微服务解决方案、PaaS提供打包到监控的全流程解决方案、DevOps提供端到端一体化解决方案);二是侵入性逐渐降低(Spring Cloud时代代码要与解决方案的资源耦合,服务网格把相关功能完全下沉到底层平台,微前端、统一配置中心、移动端动态注入等技术都朝零侵入方向发展)。业务类复用——不同领域知识差异大难以复用,但同一领域内存在复用空间(DDD针对特定场景的通用解决方案、SOA、微服务、中台都是业务类复用的探索),演进特征也有二:一是复用广度扩大(从针对特定业务场景的局部复用,到SOA/微服务时代扩大到模块和子系统层面,再到中台时代跨越多个业务领域);二是复用深度延伸(源于领域模型推广带来的业务理解加深,以及业务架构受重视带来的企业整体维度思考)。可迁移启发:评估一项”复用”举措处在哪个发展阶段,可以直接用这两条主线定位——它是技术类还是业务类复用;如果是技术类,看它是单点还是体系化、侵入性高还是低;如果是业务类,看它的复用广度停留在场景级、模块级还是跨领域级,这比笼统地说”我们做了复用”更能说清楚具体价值和局限。

结构图

flowchart TB
  R["复用的两条主线"]
  R --> T["技术类复用<br/>(公共函数/组件/框架/平台)"]
  T --> T1["单点→体系化(Spring Cloud/PaaS/DevOps)"]
  T --> T2["侵入性降低(服务网格/微前端零侵入)"]
  R --> B["业务类复用<br/>(DDD通用方案/SOA/微服务/中台)"]
  B --> B1["广度扩大:局部场景→模块子系统→跨领域中台"]
  B --> B2["深度延伸:领域模型推广+业务架构重视"]

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第8章《系统实现》之"8.2.1 复用性是什么"与"8.2.2 从程序员角度看复用的层次"(源文件:_epub-src/EPUB/xhtml/chapter12.xhtml) - 结论依据:原文说明"复用从单点向体系化发展……复用的侵入性逐渐降低……业务复用的广度正在扩大……进入中台时代后,复用的范围进一步扩大,中台通常涉及跨越多个业务领域的通用解决方案", 直接支撑本卡关于复用两条主线及其演进特征的结构图。 - 原始内容:工具都可以被视为将人类的某些能力进行"分离"和"下沉"。