架构漫谈有感之架构师如何工作

  所谓架构,就是指人们主动认识、解决问题的一个过程,对问题进行切分、合并并解决这个问题的实践活动。架构师便是一个确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。架构师需要根据需要解决的问题,对目标系统的边界进行界定,对目标系统按某个原则进行切分。架构就是分层,便也就是切分。切分根本的意义就在于利益的调整,是调整系统的利益相关者的利益。这个切分的过程就是建模,把概念抽象出来,把类似的结合起来,分成各个部分,各个职责。切分的结果得到的是一个系统的模型,最终体现在组织架构上。切分的原则要便于不同的角色,对切分出来的部分并行或者串行展开工作,并对这些切分出来的部分设计沟通的机制,使得这些部分之间进行有机的联系,合并组装成为一个整体,从而来完成目标系统的所有工作。即作为软件架构师在项目开始前需要以全局的视角,对所有问题给出解决的方案。

  作为一个架构师首先要做的就是识别出需要解决的问题。找出问题的主题,是做架构的首要问题。对于架构师来说,发现问题永远比解决问题要更加重要。当问题的主体离架构师越远,就会让找出问题主体的过程越来越难。问题的主体就是问题的隐含边界,边界不确定,问题也就不确定,一旦确定了主体,剩下的就是去搞明白主体有哪些问题。确证的认识问题,要知道这是谁的问题,有什么问题这两点。

  当架构师学会了如何识别问题之后,那么接下来就是需要对一些确实存在的问题进行调整,即架构的切分。所有的切分决策都不能违背利益为原动力这一点。一旦确定了问题的主题,系统的利益相关人员也就确定了。切分的过程实际上就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念,架构师则更多地是去理解这些概念,识别概念背后所代表的人的利益。架构切分的输出实际上就是一个系统的模型,对于一个整体问题,有多少的相关方,每一个相关方需要承担哪些权利和义务,不同的相关方是如何结合起来完成系统的整体任务的。任何架构调整都会涉及到组织结构,不可轻视。切分的最后结果都会体现在组织架构上,只有这样才能够让架构落地推进。所有的架构切分整体都应该是一个树状图,而不是有向图或者无向图。由整体切分为一个个大部分,然后再切分为一个个小部分。而对于一个总体树状图的架构切分来说,层数越多则必定沟通越多,则效率越低,所以分层越少越好,尽可能的变成平衡树,才能使效率最大化。

作为一个架构师,应该要学会抽象。抽象其实就是一个分类的过程,快速的抽象出正确的概念,这有利于快速的识别和定位问题,识别问题是架构的起始。架构师要想做好首先具备的能力就是能够正确认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所解决的问题,这样才能够为做好架构打好基础。

  总之,软件架构师的工作任务即:

(1)领导与协调整个项目中的技术活动(分析、设计和实施等)

(2)推动主要的技术决策,并最终表达为软件构架

(3)确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图”

(4)确定设计元素的分组以及这些主要分组之间的接口

(5)为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻

(6)理解、评价并接收系统需求

(7)评价和确认软件架构的实现 专业技能

  软件架构师必须要对自己的技术等领域有足够的自信。架构师的最大作用就是把技术边界往外推,不断侵入管理领域,让技术取代和优化人工管理。

 

posted @ 2022-02-23 11:20  谦寻  阅读(121)  评论(0编辑  收藏  举报