架构漫谈阅读笔记1-4(架构概念)

一、什么是架构

听到架构这个词,我的第一反应是做项目用什么架构,框架等等,心中没有明确的定义。专栏作者通过类比,简单的例子的引出了产生架构的动力与定义,使我对架构有个大概的认识。

最早时期的人独自生活,力量有限,会有以下问题:

1、任何事要人的参与

2、人的能力有限

3、时间有限

4、对生存质量的要求提高

5、对生存产生经验的总结,思考。

基于以上几点,分工出现,族群出现,人只需做自己擅长的事,具备交易能力即可。这便是社会架构的动力,同理可以推出软件架构的动力。

人类最开始住山洞,为了面对生产的挑战,人类开始:

1、建立隔离空间的设施。

2、但要有门窗保持与自然的沟通

3、生活的各个部分到室内后,就产生了不同空间的分割

4、族群出现,人类开始有意识设计不同功能的房子

5、建筑的架构出现

总结一下,什么是架构:

1、根据要解决的问题,对目标系统的边界进行界定。

2、并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。

3、并对这些切分出来的部分,设立沟通机制。

4、根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案。

二、认识“概念”

架构实际上解决的是“人”的问题,而概念是“人”认识这个世界并用来沟通的手段。作者举了“杯子”的“名相”。杯子为”名“,作用为“相”。

“杯子”是用来标识物件作用的,用来交流的。要解决问题就需要作用,为交流就有了“相”。

杯子作用其实是为了解决“人需要一个可单手持握,但是希望避免直接接触所盛物体”这个问题。概念实际上所解决的,还是人遇到的某个特定的问题,我们把解决问题的解决方案,给定了一个名字,这个名字就是对应的某个特定的概念。

作者还对抽象有独到的见解。相似的部分抽象之后形成的是一个新的概念,和原来那个概念并不一样,所解决的问题也不一样。杯子是杯子,容器是容器它们所解决的问题是不一样的

所以要做好架构,首先就要能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,才能做好架构。

三、架构识别

做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。

例子:(人)切一半土豆,切(土豆)的一半。出现错误.

处理问题的常见错误:

1.被告知要处理一个问题,但是交过来的实际上是一个解决方案,不是问题本身

2.被告知要处理一个问题,直接通过直觉就有了一个解决方案,马上考虑解决方案如何落地,或者有几种解决方案,选哪个合适。架构师在处理问题时,如果致力于把自己的工作完成,要马上警惕只有真正明白了是谁的问题,才能够真正地完成自己的任务,真正地把自己的问题解决掉,而不是反过来。

找出问题的主体,是做架构的首要问题:

1.找到概念的”主语“确定问题的边界。谁的问题?

2.一旦确定了主体,剩下的就是去搞明白主体有哪些问题。有什么问题?

四、架构切分

很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,这个调整就是架构的切分。

分工的出现产生了一个互相依赖的社会,互相谁都离不开谁(但会导致人的负载过重)。切分就是利益的调整。动力就是人们对自己利益的渴望。

切分的原则:

1、必须在连续时间内发生的一个活动,不能切分。(时间上的负载)

2、切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。(利益维护)

3、切分是内部活动不会影响系统解决的问题。(系统透明)

切分就是建模的过程

架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。

架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

posted @ 2019-03-09 19:17  什么名都不好  阅读(195)  评论(0编辑  收藏  举报