软件架构师如何工作
软件架构师如何工作
阅读了王概凯老师的架构漫谈九篇博客,从中了解到了什么是架构、什么是软件架构师以及软件架构师应如何工作。软件架构师首先要搞明白问题的主体,之后把问题进行拆分形成架构,是工作人员的效率更高。架构师还必须要明白,所给出的解决方案 -- 架构的分拆、合并方案,只有让问题的主体的权责对等,才能够真正的解决别人的问题。一般明白了问题的主体,以及主体的利益所在,做到这一点也没有问题。
架构产生的动力是事情必须由人执行的工作,每个人的能力、时间有限,人对目标系统有更高的要求,目标系统的复杂性使得单个人完成这个系统很困难。架构是根据要解决的问题,对目标系统的边界进行界定,并对目标系统按某个原则的进行切分,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间,并对这些切分出来的部分,设立沟通机制,这得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
一名软件架构师,必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处,反过来,具备架构师能力的组织领导人,一定是一个很好的领导,这个组织一定是很健康向上的,因为每个人的权利和义务就是比较均等的。并且这类领导对于组织成员权利和义务的对等状况会非常的敏感,会及时的调整组织架构,在问题发生之前就解决了。架构师要能够发现“是谁的问题”,也就是问题的本质或核心是什么,当明白的“是谁的问题”,才可能真正的认识问题是什么,明白了问题的核心,这个核心自认会带来很多边界约束。一名软件架构师,大部分时候是要去解决别人的问题,“别人”是谁,是值得好好思考的。
一名软件架构师要做好架构拆分,对问题进行拆分的原因是某人或者某些利益相关人负载太重、某个或者某些利益相关人的权利和义务不对等。切分的原则是必须在连续时间内发生的一个活动,不能切分,切分出来的部分的负责人,对这个部分的权利和义务必须是对等的,切分出来的部分,不应该超出一个自然人的负载,切分是内部活动,内部无论怎么切,对整个系统的外部应该是透明的。总结的说,架构的切分的导火索是人的负载太重,架构的切分实际就是对利益相关者的例一进行切分或合并,使得每个利益相关者的权责是对等的,每个利益相关者可以为自己的利益负责。架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进,架构切分的结构一定是一个树状,这也是为什么或产生分层,层数越多沟通越多,效率越低,分层要越少越好,尽可能变成一颗平衡树,才能让整个系统的效率最大化。
软件架构师应该承担起解决业务问题的这个角色来,专注于商业领域和软件本身的架构,让技术人员致力于为业务在计算机中跑起来而努力,只有把这两者很好的结合起来,才能更好地完成业务的目标,才会让软件更好地服务于大家。最终一定会得到一个很好的软件架构,令软件开发团队和业务部门都能够很好地开展工作并降低成本。
对于一名软件架构师而言,语言和技术应该是随手拈来,对于架构师来说这些都是工具,因为技术和语言,都是用来识别和解决所服务的主体的权责,保护并提升所服务的主体的权利的,所以,准确识别采用什么技术的能力,也是架构师所要具备的能力之一。考虑的主要因素也是长期的成本和收益。