关于架构的缘起,有一句关于big data流行的笑话:
Architecture is like teenage sex,everybody talks about it,nobody really knows what is it.
架构的英文是 Architecture,在Wikipedia(一开始我也不晓得,换个词就明白了:维基百科)上,架构是这样定义的:
Architecture is both the process and the product of planning,designing,and constructing buildings and other physical structures.
那么如何用中文定义架构 Architecture 呢?
把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。
由此,可以归纳出架构产生的五大动力:
①、必须由人执行的工作(不需要人介入,就意味着不需要改造,也就不需要架构了)
②、每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但是只能同时专注于一件事物,有两只手,无法同时做不同的事情。ps. 虽然有少部分人可以左手画圆右手画框,但这不是普遍现象)
③、每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅长于这些工作的角色来完成,从而缩短时间)
④、人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)
⑤、目标系统的复杂性使得单个人完成这个系统,满足条件2、3(如果个人就可以完成系统的提高,也不需要别的人参与,也就不需要架构的涉及,只是工匠,并且一般这个工作对时间的要求也不迫切。当足够熟练之后,也会有一定的架构思考,但考虑更多的是如何提高质量,提高个人的时间效率)
所以:当着5个条件同时成立,一定会产生架构。
根据原文的最终总结,可以精化如下:
1、界定系统边界
2、切分系统(并行或串行开展工作,一般并行才能减少时间。)
3、建立沟通机制
4、有机整合,高效完成工作
原文有一句话很好,作为本片笔记的结尾:
合久必分,分久必合