本篇文章2904字,读完约7分钟

编者按:建筑漫谈是由资深建筑师凯文·王盖凯撰写的一系列专栏。基于凯文的架构经验,本专栏将逐步讨论什么是架构,如何做好架构,如何登陆软件架构,如何编写程序等等。氪36选择的这篇文章是建筑专栏的第一篇文章。在这里,作者将通过类比介绍什么是建筑以及它为什么会产生。本文首次在微信公众账号“聊天架构”(身份证号:archtime)上发布,经36氪授权转载。

软件行业里常说的 “架构” 究竟是什么东西?

起源

一直以来,在软件行业,关于什么是架构有很多争论,每个人都有自己的理解。即使当许多架构师谈论架构时,他们也开始谈论应用架构、硬件架构、数据架构等等。我到处寻找建筑的定义,咨询了很多人,发现没有一个定义是每个人都同意的。套用一个关于大数据的流行笑话,它也适用于架构:

建筑就像青少年性,每个人都在谈论它,没有人真正知道它是什么。

事实上,当软件被发明的时候,架构已经存在了n年多,这个词最先出现在架构之后。因此,我认为有必要从源头开始,清晰地讨论建筑的概念。只有这样,软件产业架构的讨论才有意义。

什么是建筑?

建筑的英语是建筑。在维基百科上,架构的定义如下:

建筑(拉丁建筑,来自希腊?σκ?建筑师,来自?νι-"首领"和τ?建筑商)是规划、设计和建造建筑和其他物理结构的过程和产品。

从这个定义来看,建筑似乎是一个过程,它不是很清楚。为了澄清这个问题,让我们先来看看为什么建筑会出现。

为什么会产生架构?

想象一下,在最早的日子里,每个人都完全独立生活,照顾衣服、食物、住所、交通等等。整个人类是一个独立的个体,彼此之间没有互动。为了解决人类延续的问题,男人和女人自然地生活在一起。这时,有一种分工。男人和女人做的事情会有一定的分工。然而,人们日常生活的基本需求并没有改变,他们仍然是生活的必需品,如食物、衣服、住房和交通。

软件行业里常说的 “架构” 究竟是什么东西?

然而,一旦许多人作为一个整体一起工作,力量就变得强大得多,于是就自然形成了民族:有些人擅长农业,有些人擅长制造工具,有些地方适合生产食物,有些地方适合生产棉花,等等。,这自然形成了人的分组和区域分组。当分工发生时,每个人的生产率实际上都提高了,因为他们所做的是每个人都擅长的。

全体人口的生产力和抵御环境的能力都得到了提高。为什么?因为每个人的能力和时间都是有限的,而且因为人的结构的限制,人们只能同时专注于一件事情,这就导致了分工。自从分工发生以来,所有生存所必需的事情都是由一个人来完成的,许多不同角色的分工合作完成了这些事情。这些人必须通过某种机制聚集在一起,这样每个人都可以完成生存所必需的事情,这实际上导致了交易(交易的这一部分不会在这里开始,并且有机会再次讨论它)。

软件行业里常说的 “架构” 究竟是什么东西?

当每个人都必须自己完成所有生活必需品的生产时,就没有结构了(当然,就个人而言,只有有限数量的事情可以同时完成,而且在时间上可能仍然有结构)。一旦有了分工,所有的事情都会被分成不同的角色来完成,最后,通过交易,每个人都会有生活的必需品,而不是什么都做,每个人只需要做他擅长的事情,并且有一定的交易能力。

软件行业里常说的 “架构” 究竟是什么东西?

这实际上形成了社会的结构。那么你如何定义架构呢?以上面的例子为例,把一个整体(完成人类生存的所有工作)分成不同的部分(分工),并按不同的角色完成这些分工。通过建立不同部分之间的沟通机制,这些部分可以有机地结合成一个整体,完成整体所需的所有活动。这就是建筑。从上面的例子中,我们也可以总结出建筑的动机:

软件行业里常说的 “架构” 究竟是什么东西?

必须由人来完成的工作(没有人的干预,这意味着不需要转换,所以不需要架构)

每个人的能力都是有限的(每个人都有自己的长处,个人产出被限制在最短,而且由于人的结构限制,他只能同时专注于一件事情,例如,虽然他有两只眼睛,他只能同时专注于一件事情,而他不能同时做不同的事情。附言。虽然少数人能用左手画一个圆形的右手相框,但这并不是一个普遍现象)

每个人的时间都是有限的(为了减少时间投入,这将不可避免地导致工作的分解,并把它交给擅长这些任务的角色,见2,从而缩短时间)

人们对目标系统有更高的要求(如果他们对现状满意,就不需要架构)

目标系统的复杂性使得一个人完成系统并满足条件2和条件3成为可能(如果一个人可以在没有其他人参与的情况下完成系统的改进,则不需要涉及架构,只需要一个工匠,并且这项工作的时间要求通常不紧迫。当足够熟练时,会有一些架构思考,但更多的考虑是如何提高质量和提高个人时间效率)

有些人可能会质疑,如果一个人分解了目标系统,比如有人建造了一栋房子,购买了材料并自己建造,这难道不是一个框架吗?如果你对时间不敏感,就会发生这种情况,但在这种情况下,它不一定会导致架构的出现。如果你有足够的意识和足够的技能,你也会想到建筑,因为它有助于提高生产力,缩短建设时间,提高房屋质量。事实上,建筑的建筑是这些活动长期进行后积累的实践。

软件行业里常说的 “架构” 究竟是什么东西?

当这五个条件同时成立时,就会产生一个框架。从这个层面上来说,建筑是一种在人类发展过程中改变世界从无知和被动到主动的方式,并以更高的效率改造它。让我们以建筑为例。斯特朗瑟明白。

起初,人类生活在洞穴和树林中,主要是为了躲避其他野兽的攻击,减少自然环境的变化和对人类生存的挑战。为了实现这些目标,人类开始学习在平坦的地面上用树木和树叶建造隔离设施,这是建筑的开端。然而,完全隔离也有许多缺点,诸如门和窗之类的设施正在逐渐产生。

建筑的本质是从自然环境中画出一个独特的空房间,但它仍然可以通过门窗与自然环境交流。此时,架构已经开始。在地球上划分空,通过门、窗和地基与地球和空保持有机联系。当人类开始学习用火时,小屋自然地慢慢分成两部分,一部分用来做饭,另一部分用来生活。当人们的排泄物慢慢进入房间时,洗手间慢慢出现了。这是大楼里的空分部。

软件行业里常说的 “架构” 究竟是什么东西?

这时,人们对建筑的需求逐渐增加,空的划分将会变得多样,并且会有许多组合的方式,如人人居住的房子、集体生活产生的宗教性质的房子、集体活动的房子等等。这时,人们开始有意识地设计房屋,建筑师慢慢出现了。一切都是为了满足人们越来越高的需求,提高质量,减少时间,更有效地划分空房间,使空房间更有机地交流。这是建筑的建筑和建筑的进化

软件行业里常说的 “架构” 究竟是什么东西?

总而言之,什么是建筑?

根据需要解决的问题,定义了目标系统的边界。

并根据一定的原则对目标系统进行分割。分段的原则是使不同的角色更容易在分段的部分上并行或串行工作,通常并行可以减少时间。

并为这些分割的部分建立通信机制。

根据3,这些部分可以有机地连接、组合和组装成一个整体,目标系统的所有工作都可以完成。

同样的思维也可以延伸到其他行业,如企业架构、国家架构、组织架构、音乐架构、色彩架构、软件架构等等。套用《三国演义》中的一句话,我们必须长期分开。建筑实际上是指人们根据自己对世界的理解,主动地、有目的地识别问题、分解和融合问题以解决某个问题的实践活动。架构的输出自然是对问题及其解决方案的分析,包括拆分的原则和原因、沟通和合并的原则和原因,以及与拆分、拆分和合并相对应的角色和核心能力等。

软件行业里常说的 “架构” 究竟是什么东西?

这篇文章由读者提交,并不代表36英寸的立场。如果转载,请注明出处

“读完这篇文章还不够吗?如果你也开始创业,希望你的项目被报道,请点击这里告诉我们!”

标题:软件行业里常说的 “架构” 究竟是什么东西?

地址:http://www.j4f2.com/ydbxw/8176.html