读《架构漫谈》有感之软件架构师如何工作
首先,架构师需要根据要解决的问题,对目标系统的边界进行界定,对目标系统按某个原则进行切分。切分的原则要便于不同的角色,对切分出来的部分并行或者串行展开工作,并对这些切分出来的部分设计沟通的机智,使得这些部分之间进行有机的联系,合并组装成为一个整体,来完成目标系统的所有工作。
作为一个架构师,应该要学会抽象。抽象的实际是把不同的概念的相似部分合并在一起,形成一个新的概念。但是,相似的部分在不同人看来并一定那么相似,其次抽象之后形成的是一个新的概念和原来那个概念并不一样,所解决的问题也不愿意。架构师要想做好首先具备的能力就是能够正确认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所解决的问题,这样才能够为做好架构打好基础。如果知道了某一概念所要解决的问题,学习新的技术或者概念就会如虎添翼,快速的入手;学习一个新的领域也会非常快速有效;使用这些概念来结束问题,甚至发明新的概念都是很容易的事情,这样架构师在新的领域解决问题的时候,就能够快速掌握这个领域,正确解决问题。
作为一个架构师首先要做的就是识别出需要解决的问题,架构师大部分时候回是要去解决别人的问题,所以找出问题的主题,是做架构的首要问题。我们要解决的问题,一定是别人的问题,而不是自己的问题。架构师应该时刻记住,发现问题永远比解决问题来额的更加重要。当问题的主体离架构师越远,就会让找出问题主体的过程越来越难。问题的主体就是问题的隐含边界,边界不确定下来,问题就是不确定的,一旦确定了主体,剩下的就是去搞明白主体有哪些问题。确证的认识问题,要知道这是谁的问题,有什么问题这两点。
当架构师学会了如何识别问题之后,那么接下来就是需要对一些确实存在的问题进行调整,即架构的切分。所有的切分决策都不能违背利益为原动力这一点。一旦确定了问题的主题,系统的利益相关人员也就确定了。架构师要遵循1.必须在连续时间内发生的一个活动,不能区分,2.切分出来的部分负责人,对这个部分的权利和义务必须是对等的。3.气氛出来的问题不应该超过一个自然人的负载。4.切分是内部活动,内部无论怎么切,对整个系统的外部都应该是透明的。这四个原则。切分的过程实际上就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念,架构师则更多地是去理解这些概念,识别概念背后所代表的人的利益。架构切分的输出实际上就是一个系统的模型,对于一个整体问题,有多少的相关方,每一个相关方需要承担哪些权利和义务,不同的相关方是如何结合起来完成系统的整体任务的。任何架构调整都会涉及到组织结构,千万不可以轻视。切分的最后结果都会体现在组织架构上,只有这样才能够让架构落地推进。架构切分的结果一定是一个梳妆的,这也是为什么会产生分层,层数越多沟通越多,效率越低,分层越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。
架构师通过把很多工作拆分出来,遵循拆分原则,让全责一致。同意也需要组织架构调整,来保证架构的落地。减轻每一个工程师的压力,提升每个人的效率和利益。
当我们说架构的时候,我们一定要讲清楚,究竟说的是部署的架构还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障,离开了这个软件架构是一句空话。架构是进化出来的,架构实际上是在量不断着的增大,超过了单台服务器的容量,逐渐的拆分,同时导致超过单个人员的呢鞥里,工作人员不断增多,工作内容不断的拆分形成。这本身就是架构的意义所在,不管怎么拆分,所达到的目的没有变化,就是完成业务在计算机中的虚拟化。
总结来说,架构师工作需要首先确定边界,然后进行识别问题,最后进行工作切分。