什么是架构?
下图为古代的木质建筑的结构图:
对应到软件架构,这里面的“木”代表什么?软件架构中的“结构”是什么?这些软件系统的“木”又是如何连接的?
关联到软件领域,木就是系统中的要素,我们将他们称之为架构要素。架构要素可以是子系统、模块、应用服务。
结构,是架构的产物。不同的软件系统会有不同的结构,这些结构是为解决不同场景而设计的。
连接,通过定义架构元素之间的接口和交互关系、集成机制,实现架构元素之间的连接。连接可以是分布式调用、进程间调用、组件之间的交互关系等。
总结一下架构的本质,即架构=要素+结构+连接,将系统要素按照特定结构进行连接交互。
画架构图的目的
架构图,是可视化的,是给人看的。所以,归根结底是为了交流理解。
对上:经常需要汇报,争取领导层的认同支持。
对己:借助多种视图来厘清思路。
对下:用不同视角来表达自己的想法,沟通交流。
架构图之间的关系
首先需要熟悉业务,形成业务架构,根据业务架构,做出相应的产品架构和数据架构以及应用架构,最后技术架构落地实施。
业务架构是战略,应用架构是承上启下,一方面