架构漫谈读后感
架构漫谈是由一个架构师王概凯写的一个专题,是以他的实际架构经验为基础,讨论是什么是架构,怎样做好架构,怎么写好程序等一些问题。
共分为九个部分:
1) 什么是架构?
首先把架构的概念讨论明白,然后在对架构进行分析才显得清晰有意义。架构这个词在软件工程很早之前就已经出现了,在人类的早起大家的衣食住行都靠自己,不需要合作,这时候自然不需要架构。但是经过一段发展,人类发现合作的力量是巨大的,每个人都有自己所擅长的部分,在进行分工合作的时候产生的结果往往大于个人,这时候就产生了社会的架构。所以说,由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,就是架构。从中可以看出架构产生的动力有五个:由人执行;每个人能力有限;每个人时间有限;目标期望高;目标复杂。从更细致的方面来说:架构是根据要解决的问题定边界;对目标系统按某原则切分;并对分块设立沟通机制;使得分块能够联系起来成为整体,完成工作。
2) 认识概念是理解架构的基础
理解概念对于理解这件事物来说十分重要,就像说桌子一样,同样是有腿有木板搭建,而我们会在桌子上吃饭不在柜子上吃饭,原因就是桌子实际上是为了解决人坐在椅子上,手还能够支撑在一个平面上继续开展活动的问题,一般会和椅子配对出现。坐在椅子上工作,对着柜子有一个很严重的问题,就是腿无法展开的问题。当这么坐着超过半小时就知道是什么痛苦了。所以桌子的平面下方一定会有一个足够容纳膝部和小腿的空间,来解决这个问题。解决了这些问题的装置,才能称之为桌子。所以理解概念的背后用途,才能更好的解决问题。
3) 如何做好架构——识别问题
做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决 80%了。这个能力基本上就决定了架构师的水平。我们要解决的问题不仅仅是表面上的工作,架构师需要完成的是隐藏的用户实际需要解决的问题。最主要的两个问题就是1. 这是谁的问题? 2. 有什么问题?架构师的主要任务大部分在于问题一上。
4) 如何做好架构——架构切分
很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。所以切分是利益的调整。切分也需要有原则,这四个原则是:连续时间内的活动不能切分;权利义务对等;不超出一个人的负载;对外部透明。总结下来,架构的切分的导火索是人的负载太重。架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
5) 什么是软件
软件的本质,其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。
6) 架构要解决什么问题
业务问题,计算机问题。有两种架构:1. 软件因为流量增大而分拆成不同的运行单元,在机器上部署所形成的架构,属于软件架构。 2. 每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。
7) 给架构师实权
好的架构师应该从别人的利益角度考虑,并且要让别人知道自己的利益与义务之间是对等的。
8) 从架构考虑看如何写好代码
9) 理清技术业务架构之间的关系
准确识别采用什么技术的能力,也是架构师所要具备的能力之一。考虑的主要
因素也是长期的成本和收益。