阅读笔记--《架构漫谈》—02

4、 如何做好架构之架构切分

文章一针见血的指出“切分是利益的调整”,看到这句话的时候,我突然想到了分蛋糕这一活动,几个小朋友在一起分蛋糕时,分蛋糕的小朋友,肯定会对平常跟他关系好的人分的多,自然就吃的也多,平常关系好说明付出多,这种时候利益天秤倾向也无可厚非。所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。随着社会的发展,分工是必然的,这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化。

切分是必须的,切分同样也要遵循几个原则,要把把时间上连续的动作,切分成时间上可以并行的动作,在空间上横向扩展。

Ÿ   必须在连续时间内发生的一个活动,不能切分。

Ÿ   切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。

Ÿ   切分出来的部分,不应该超出一个自然人的负载。

Ÿ   切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。

架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

5、 什么是软件

身为一名软件工程专业的学生,看到这个题目“什么是软件”让我愣了好几秒,什么是软件,难道软件不就是运行在硬件之上,为人提供便捷的东西么?带着我自己的这些疑问,我看了这一篇介绍什么是软件的文章。

文章首先提到了从冯诺依曼结构开始,程序逻辑开始脱离硬件,采用二进制编码。加上存储,配合输入输出,一个简化的大脑就出现了。图灵机则是模拟大脑的计算,用数学的方式把计算的过程定义了出来,著名的邱奇 - 图灵论题:一切直觉上能行可计算的函数都可用图灵机计算,反之亦然。软硬件两者一结合,一个可编程的大脑出现了,这也是现在为什么我们把计算机叫做电脑。这给我很新奇的反应,嗯??原来这是叫电脑的原因,软件原来就是以模拟人为目标,想想也是,软件的功能,人是可以实现的,只是耗费的时间要不软件耗费的时间长的不是一点半点而已。

此外,又提到了摩尔定律,虽然这个我首先想到的是“摩尔庄园”,说会正题,摩尔定律:当价格不变时,集成电路上可容纳的元器件数目,约每隔 18-24 个月增加一倍,性能提升一倍。这也就是这些高级编程语言出现的原因,为了简化难度,降低成本。

关于软件架构出现的过程,一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构,动力也就是就是提升参与的人的利益,降低成本,导火索也是软件工程师的任务太重,我们需要把很多工作拆分出来。拆分的原则也是一样的,如何让权责一致。由此可见,软件架构出现的必然性,以及其对软件的必要性。

7、 不要空设架构师这个职位,给他实权

在这篇文章中,提到了架构师,为我们讲解了架构师是什么要干什么工作,首先提到了架构师的前提条件,如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成为一个架构师。要成为架构师,必须要超越这个恐惧才能够看清楚,我们要解决的是别人的问题,不是自己完成工作的问题。因为仅仅是完成了自己的工作,也并不一定就解决了别人的问题。如果别人的问题没有解决 -- 即使我们认为自己的工作完成了 -- 我们的工作实际也没完成,因为我们工作是否完成,是别人说的算的,不是我们自己。

这里又给出了一堆辩证的话,我觉得中心讲的就是,身为一个架构师,完成自己的工作是为了解决别人的问题。架构师需要发现别人的问题,找到问题的主体,并为其进行解决。

但架构师也不是无私奉献的,也有自己的权力和义务,要去平衡别人的利益,甚至会调整别人的利益的,是一个组织的领导人,有权利调动这个组织的架构。对于软件领域的架构师,必须明白软件本身是怎么回事,解决什么问题,还要解决软件所服务的对象的领域本身是怎么回事,解决什么问题,这就要求更高了。语言和技术应该是随手拈来才对,对于架构师这些都是工具。架构师的能力和地位都是处于比较高的层次上的。

原文地址:https://www.cnblogs.com/Qi77/p/13107184.html