阅读笔记
这一次阅读我主要的阅读了一下《架构漫谈》这本书切分部分相关的内容,有了一些心得,在这里跟大家分享一下。
要想知道如何做到架构的切分,我们得先知道,什么是架构的切分:
其实很显而易见的,随着社会的发展,分工是必然的,为什么呢?举个例子吧,玩游戏人的应该都是知道,无论什么游戏,只要是和战斗有关,那一定会有前排抗伤害的,有后面龟缩输出的,有当刺客偷伤害的。这是一件很常见的事情,很多老玩家看到自己的阵容就知道这句能不能赢 。这个背后的道理其实很简单就是一句老话:尺有所短,寸有所长。每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。
对比一个人干所有的事情,结果就是大家都能够得到更多,我们常说的嘛,你有一个想法,我有一个想法,加起来就是两个,就在这种常识的影响下,产生了一个互相依赖的社会,互相谁都离不开谁。这就是自然而然而产生的架构切分。
在这个情况下,比较有意思的是,每个人必须要舍掉自己的某些东西,才能够得到更多的东西。有些人不愿意和别人进行交换,不想去依赖于别人,这些人的生活就很明显的差很多,也辛苦很多,自然而然的就被社会淘汰了。几万年前我们的祖先智人通过团结战胜了远强于自己的尼安德特人,这就是团结的力量,而个人各司其职的过程其实就是切分。
接下来聊聊架构分割的目的,在书中作者通过对例子的描述告诉我们:切分的缘由大致来自于这四点:
1.某个或者某些利益相关人负载太重。
2.时间上的负载太重。
3.空间上的负载太重,本质上还是时间上的负载太重。
4.某个或者某些利益相关人的权利和义务不对等。
在之前的阅读笔记中已经阐释过了架构是一种标准准则,它的存在让软件本身更具规划性,让软件内部关联,协同更高效。
是一种为了团队开发,软件未来发展而出现的一种准则。
架构是为了解决问而生的,架构解决的问题本身就是可以被解决的,只不过没有合适的方案。所以架构有很大一定程度上的工作就是让正确的人做正确的事情,这时候就需要我们对项目的进行切分了。
了解了切分的为什么,和是什么,接下来
谈谈如何切分:切分的几个原则是需要遵守的:
1.必须在连续时间内发生的一个活动,不能切分。比如孕妇怀孕,必须要10月怀胎,不能够切成10个人一个月完成。
2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。比方说妈妈10月怀胎,妈妈有权利处置小孩的出生和抚养,同样也对小孩的出生和抚养负责。为什么必须是这样呢? 因为如果权利和义务是不对等的话,会伤害每个个体的利益,分出来执行的效率会比没有分出来还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。
切分出来的部分,不应该超出一个自然人的负载。当然对于每个人的能力不同,负载能力也不一样,需要不断的根据实际情况调整,这实际上就是运营。
切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。当然很多时候当我们把问题分析的比较清楚的时候,整个系统的边界会进一步的完善,这就会形成螺旋式的进化。但这不属于架构所应该解决的问题。进化的发生,也会导致新的架构的切分。
作为一个程序员,以后和同事一起工作是不可避免,早些了解到一些有关架构的知识我觉得是非常有必要而且是很关键得事情。通过这一部分的学习,我对于架构的认识又向前了一步