读软件漫谈,简述软件架构师如何工作

软件架构师如何工作

  最近拜读了王概凯老师的架构漫谈分享,自认为对架构的设计有了一点点的小小心得。在这里谈一谈对软件架构师的认识过程:在第一次听到这个职业名称的时候,感觉很是高大上,和自己没有多大的关系,感觉高攀不起,但是在读了老师的架构漫谈之后,感觉软件架构师神秘不在,触手可及。

  架构是人类发展过程中,由懵懵懂懂的,被动的去认识这个世界,变成主动的去认识,并以更高的效率去改造这个世界的方法。

  对架构的总结定义:

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

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

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

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

  当架构师学会了如何识别问题之后,那么接下来就是需要对一些确实存在的问题进行调整,即架构的切分。所有的切分决策都不能违背利益为原动力这一点。一旦确定了问题的主题,系统的利益相关人员也就确定了。

  架构师要遵循

  1.必须在连续时间内发生的一个活动,不能区分,

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

  3.气氛出来的问题不应该超过一个自然人的负载。

  4.切分是内部活动,内部无论怎么切,对整个系统的外部都应该是透明的。

四个原则。

  切分的过程实际上就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念,架构师则更多地是去理解这些概念,识别概念背后所代表的人的利益。架构切分的输出实际上就是一个系统的模型,对于一个整体问题,有多少的相关方,每一个相关方需要承担哪些权利和义务,不同的相关方是如何结合起来完成系统的整体任务的。任何架构调整都会涉及到组织结构,千万不可以轻视。切分的最后结果都会体现在组织架构上,只有这样才能够让架构落地推进。架构切分的结果一定是一个梳妆的,这也是为什么会产生分层,层数越多沟通越多,效率越低,分层越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

  软件架构师最终目标是解决别人的问题,只专注与解决自己工作的问题没办法称为软件架构师,为别人的利益服务是架构师的义务。义务与权力是相辅相成的,有为别人利益着想的架构师也必须有领导权力的架构师,架构师作为组织领导,组织内部每个人的权力与义务会得到均等的划分,每个人都会得到发展。而要做好架构,首先需要识别需要解决的问题,识别出问题了,那么目标就不难实现,而识别问题的前提就是找出这个问题是谁的,找到这个问题的主题,这样才可以知道问题的边界,从而了解真正需要实现的目标是什么,才能真正的认识到问题是什么,然后是实现目标。发现问题要比解决问题更重要,如果一味的解决问题,但是并没有弄清楚问题是谁的,真正的目标是什么,那么解决问题只是空谈,而架构师的能力很大程度就体现在发现问题源头上面。

  技术、架构以及业务之间的关系:技术在解决业务问题中产生,为了解决业务问题,人们会想出更好的技术来,目的就是获得更大的利益,业务要解决的问题越来越多越来越复杂,一种技术已经不能满足解决问题的需要了,需要把多种技术拼接在一起,多个技术共同工作来获得更大的利益。这里业务和技术的高效衔接就成为了架构师的主要问题,因为技术不会和业务有直接的关系(一种技术可以适应多种业务),架构师的作用也在这里体现,架构师有意识的组织和识别不同的技术,来实现业务的目标。

  当我们说架构的时候,我们一定要讲清楚,究竟说的是部署的架构还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障,离开了这个软件架构是一句空话。架构是进化出来的,架构实际上是在量不断着的增大,超过了单台服务器的容量,逐渐的拆分,同时导致超过单个人员的呢鞥里,工作人员不断增多,工作内容不断的拆分形成。这本身就是架构的意义所在,不管怎么拆分,所达到的目的没有变化,就是完成业务在计算机中的虚拟化。

 

原文地址:https://www.cnblogs.com/cxy0210/p/14486822.html