知识卡片
复用的层次演进:技术类复用体系化,业务类复用向中台扩展
内容
复用就是”再次使用”已有事物来实现新目标——就像人类靠发明工具把身体能力和认知能力”分离”并”下沉”下来,从而从繁重劳动中解放出来专注于更擅长的事情,软件系统的复用同样是把某些功能”分离”“沉淀”下来,让架构师和程序员有更多时间思考更重要的事情,而且复用能力提升后上层应用也会更丰富,进而促进开发出更好的系统,二者相互促进。系统代码是”业务+技术”的二元组,复用沿两条主线演进。技术类复用——针对通用的技术部分(公共函数、类、组件包、开发框架、架构模式、平台),演进特征有二:一是从单点向体系化发展(过去复用只针对单一功能,如今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["深度延伸:领域模型推广+业务架构重视"]