读架构漫谈有感--软件架构师如何工作

  这两天我读了王概凯写的架构漫谈,他在文章中详细介绍了什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。谈起架构师许多人都比较陌生这个名词。他们主要是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。而想要做好这一份工作其实并不那么简单。

  根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。架构师的能力大部分会体现在问题的识别上。当明白了问题的主体,我们才可能真正的认识问题是什么。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。这个就比较直接了,常用的方式就是直接面对主体进行访谈,深入到主体的工作生活当中,体验并感受这些问题,甚至通过数据的反馈来定位问题。

  在架构漫谈中提到过很多遍概念这个名词,我相信对很多人说,这是很模糊的东西,对于一个物品的概念,我们大多是在长期的生活中有了潜意识,见到杯子就是用来接水的,在往深的想想就是盛放液体的东西,所以具体应该怎么定义这个东西,会有很大的差距,这就有件事,我们老师在上课时问什么什么是桌子,很多人脱口而出四个腿啊之类的,这也是出于常识对这个东西的理解,仔细想想之后对桌子这个东西也会有个不同的概念,只要满足某一个需要的一个物体的一个功能,从抽象角度来说,就是算是一类物品。回过头来,根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。因此对于架构,想要做架构的时候,需要理解所做领域的东西。作为一名软件结构师也是这样,对于一个软件所属领域,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。

  作为软件架构师,软甲当然是重中之重,软件架构的出现也是同样的。一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构。这个背后的动力也是一样的,就是提升参与的人的利益,降低成本。导火索也是软件工程师的任务太重,我们需要把很多工作拆分出来。拆分的原则也是一样的,如何让权责一致。同样,这个拆分也是需要组织架构的调整,来保证架构的落地。
  软件的本质,其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。软件工程师的职责在这个浪潮中,不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。这一切的背后,仍然是为了提升人类自己的利益,解决人类自己的问题。软件架构师就是为了更好地完成这个过程。

  最后总结一下,软件架构师应该承担起解决业务问题这个角色、应该具备准确识别采用了什么技术的能力、能够分清楚业务逻辑之间的本质、具备过硬的语言和技术能力,而这些也是做好一个软件架构师的必要条件和前提。

原文地址:https://www.cnblogs.com/1502762920-com/p/12331213.html