架构漫谈总结
《架构漫谈》系列专栏由资深架构师王概凯撰写,旨在探讨架构的本质、如何做好架构、软件架构的落地以及编程实践等问题。本文是该系列的第一篇,主要从历史和社会发展的角度,通过类比建筑和其他领域,阐述了什么是架构以及架构产生的动力和必要性。
一、什么是架构?
架构一词最早源于建筑领域,指的是规划、设计和建造建筑及其他物理结构的过程和产物。在软件领域,架构的定义一直存在争议,但核心思想是将一个复杂的系统分解为不同的部分,并建立这些部分之间的沟通机制,使其有机地组合成一个整体,完成特定的目标。
架构的本质可以总结为以下几点:
界定系统边界:明确需要解决的问题和目标系统的范围。
系统切分:根据某个原则将系统分解为不同的部分,便于不同的角色并行或串行工作。
建立沟通机制:为切分后的部分设计沟通和协作的方式。
有机合并:将这些部分组合成一个整体,完成系统的所有功能。
二、为什么会产生架构?
架构的产生是人类社会发展的必然结果,主要源于以下几个动力:
人类能力的有限性:每个人的能力和时间有限,无法独立完成所有复杂的任务。
分工合作的需求:为了提高效率,人们将工作分解为不同的部分,由不同角色完成。
系统复杂性的增加:随着系统复杂性的提升,单个人难以独立完成,需要多人协作。
对系统更高的要求:为了满足更高的需求(如效率、质量、功能),人们主动设计架构来优化系统。
以人类社会为例,早期人类独立生活,自己完成衣食住行等所有工作。随着社会的发展,分工逐渐出现,不同的人负责不同的任务(如种田、制作工具),并通过交易满足各自的需求。这种分工合作的方式形成了社会的架构。
三、架构的核心原则
从历史和社会的角度,可以归纳出架构的核心原则:
切分原则:将系统分解为不同的部分,便于不同角色并行工作,提高效率。
沟通原则:为切分后的部分设计沟通机制,使其能够有机地组合成一个整体。
目的导向:架构是为了解决特定的问题,必须围绕目标系统的需求进行设计。
以建筑为例,早期人类居住在山洞或树上,后来开始建造茅棚,并逐渐设计出门窗、厨房、洗手间等功能区域。这种空间的切分和功能的设计,本质上就是一种架构实践。
四、架构的普遍性
架构不仅仅存在于建筑和软件领域,还广泛应用于其他行业和领域。例如:
企业架构:将企业组织分解为不同的部门,并建立沟通和协作机制。
国家架构:将国家治理分解为立法、行政、司法等不同部分,并设计运行机制。
音乐架构:将音乐作品分解为不同的乐章或段落,并设计其组合方式。
色彩架构:将色彩分解为不同的色系,并设计其搭配和组合规则。
架构的核心思想是“分而治之”,通过分解和合并,解决复杂问题,提高效率和质量。
五、总结
架构是人类在面对复杂问题时,主动分解、合并并设计解决方案的实践活动。它的产生源于人类能力的有限性、分工合作的需求以及系统复杂性的增加。无论是建筑、软件还是其他领域,架构的核心原则都是将系统分解为不同的部分,并设计沟通机制,使其有机地组合成一个整体,完成特定的目标。
理解架构的本质,有助于我们在面对复杂系统时,主动进行分解和设计,提出更高效的解决方案。正如作者所言,“架构是人类发展过程中,由懵懵懂懂的、被动的认识世界,变成主动的、有目的地改造世界的方法。”