软件架构师如何工作

dmego dmego     2022-10-23     140

关键词:

前言

要想了解软件架构师如何工作,首先要搞清楚这么几个问题:什么是架构,怎样理解架构,如何做好架构,什么是软件,什么是软件架构师,软件架构师的工作是什么,怎么理清技术、业务和架构三者的关系。资深架构师王概凯在《架构漫谈》系列专栏中一一给出了这些问题的答案。本文也是本人阅读《架构漫谈》时所做的笔记与思考。

什么是架构

什么是架构,为什么会产生架构,作者由人类社会的演化,人类社会中分工的出现来引入问题的答案。把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。为什么会产生构架,对于人类社会而言,由于人群的生产力提高,人类学会了越来越多的技术,但是不可能一个人都会这些新的技术,所有就产生了分工,一旦产生了分工,就把所有的事情切分成不同人去完成,从而以更高的效率来认识世界以及改造世界。这实际上形成了社会的架构,它是人类发展过程中,由懵懵懂懂的,被动的去认识这个世界,变成主动的去认识,并以更高的效率去改造这个世界的方法。而在现如今生活中而言,架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。

怎么理解架构

怎样理解架构呢,作者讲到,认识概念是理解架构的基础,那么问题又来了,什么是概念,怎么理解概念。一般认为,概念属于人认识这个世界并用来沟通的手段,这个问题的概念是抽象的,就像面向对象里面的类与对象之间的关系。根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

如何做好架构

如何做好架构,作者从两个方面来谈。首先是识别问题,这里需要的不仅仅是沟通能力,还有你对问题的定位问题,问题的主体是谁,这是识别问题的关键也是最难的地方,在这之中,我们要明白我们要解决的都是人的问题。在识别问题之后,我们要做的就是利益的切分,所谓的利益的切分,就是平均好在解决这个问题的过程中所有人员的自身利益。要做到权利与义务的对等。这其实就是一个建模的过程,并且是一个树状的模型,是一个分层的模型,要做好架构,必须让所建的模型树是一颗平衡树,让整个系统的效率最大化,让每个人的利益最大化。

什么是软件

什么是软件,这个问题来到了计算机,程序这些概念上来,软件的主要目的,是把人类的生活模拟化,虚拟化,提供更低成本,高效率的新的生活。软件主要依赖的是人类几千年来的生活知识,软件的出现也是为了解决人的问题,刚开始的时候,一个人就能写出一个非常出色的软件,但是随着人们需求的日益增加,人类想通过软件来解决的问题越来越多,导致软件写的越来越大,再加上一些新的语言,技术出现,一个人难以开发如此庞大的软件,开发软件需要几个人,或者更多的人一起合作,并且在开发过程中各司其职。一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,于是演变成了不同的软件架构。而对软件需求,问题进行识别切分,对系统进行设计的人就称之为软件架构师。

什么是软件架构师

但是做架构的并不都叫架构师,架构师是以解决问题为自己的工作,并且这个问题是别人的问题。架构师是要去平衡别人的利益,甚至会调整别人的利益的。这就要求架构师有非常强的影响力。从具体来说,软件架构师要做的就是从做好架构出发,让软件工程师写好代码,架构师对需求以及问题做好了分析和切分之后,设计系统框架,然后程序员按照框架来编写代码,如果最终编写出来的软件不能用来解决用户的需求或者问题,或者太复杂繁琐,说明在整个系统架构是上出现了问题,而一个好的架构师则会充分做好软件架构,包括代码架构以及承载代码运行的硬件部署架构,设计出来的框架会真正的解决各方的问题包括自己的。

怎么理清技术、业务与架构的关系

一个好的软件架构师,技术、业务和架构这三者之间的关系一定理解的十分清楚。作者讲到,技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提;有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求--也就是业务。做为软件架构师,其主要角色应该是解决业务问题,至于技术问题应该交给技术人员,自己专注于软件本身的架构,当然在解决业务问题的过程中,软件架构师还要准确识别要采用什么技术来解决问题更加高效方便,这个能力也是软件架构师所应该具备的。考虑的主要因素也是长期的成本和收益。

软件架构师如何工作-架构漫谈阅读笔记

  在王概凯先生的9篇关于软件架构师的博客-《架构漫谈》中,我们可以看到文中谈到了架构的定义、含义,架构主要是要认识概念,如何做好架构之架构的切分,然后谈到了软件与架构之间的关系(什么是软件,软件架构是... 查看详情

软件架构师如何工作

 由百度百科上可以看到软件架构师的定义:所谓架构师,通俗的说就是设计师或结构设计者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织... 查看详情

《漫谈架构》读后感——软件架构师如何工作

...问题的实践活动。架构实际上解决的是人的问题。什么是软件架构?软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存... 查看详情

软件架构师是如何工作的

    软件体系结构的第一节课,是要让我们了解如果要做一名软件架构师,我们应该做什么和怎么做。在课堂上,老师通过《梦想改造家》中王平仲对特殊房型的改造来让我们从一名建筑师去了解什么是软件架构师... 查看详情

软件架构师如何工作

软件架构师如何工作对于初学软件架构的我来说软件架构师的工作这个概念是非常模糊的,在我的理解上软件架构师所从事软件开发方面的工作应该与建筑方面的建筑设计师很类似,他们应该承担着类似的责任,在整个项目真正... 查看详情

软件架构师是如何工作的

最近阅读了王概凯的架构漫谈,下面是我对一名软件架构师的权利与义务的理解所谓软件架构师,是软件行业中一种新兴行业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项... 查看详情

架构漫谈博客读后感之软件架构师如何工作

...理上的结构的产物,这段定义虽然是以建筑为主体的,但软件行业的架构也与之相符:根据要解决的问题,对目标系统的边界进行界定(即上下范围图);并对目标系统按照某个原则进行切分(切分的原则,要便于不同的角色,... 查看详情

软件架构师如何工作(即架构漫谈读后感)

软件架构师如何工作(即架构漫谈读后感)读完王概凯老师的架构漫谈,感觉自己对软件架构方面的知识了解了一点点。以前都只是听说软件架构师特别的厉害,高薪,但是具体说软件架构师是什么,具体是做什么的,自己并没... 查看详情

软件架构师如何工作

...者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。在架构漫谈中举了早期社会每个人独立的生活方... 查看详情

软件架构师如何工作

...概凯的架构漫谈和查阅一些其他资料,我大致了解了一下软件架构师的一些相关知识。  什么是架构呢?在架构漫谈中这样说道:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分... 查看详情

《架构漫谈》读后感之“关于软件架构师如何工作”

  通过社会的架构举例,从原始自给自足独立完成衣食住行,到发展中分工合作、相互沟通、将事物完成到一个更好的水平。从而我知道了架构的动力:必须由人执行的工作每个人的能力有限每个人的时间有限人对目标系统有... 查看详情

软件构架师的流程

软件体系架构师工作流程:   今天让我们看了《梦想改造家》回答这样的一个问题:结合《梦想改造家》中建筑者的工作流程谈及对软件体系架构师的工作流程?软件体系架构师在我的认知中,架构师的工作职责就是... 查看详情

[架构漫谈]软件架构师如何工作

...进行切分、合并并解决这个问题的实践活动。  而对于软件架构来说认识什么是架构,有以下几点:    1.根据要解决的问题,对目标系统的边界进行界定;    2.并对目标系统按某个原则进行切分;    3.根据2... 查看详情

如何成为一名优秀的软件架构师

什么是软件架构师?架构师(Architecture)是目前很多软件企业最急需的人才,也是一个软件企业中薪水最高的技术人才。换句话说,架构师是企业的人力资本,与人力资源相比其能够通过架构、创新使企业获得新的产品、新的市场和... 查看详情

从零开始学架构:架构师成长路径

内容摘要从架构的本质,软件工程,架构师职责,成长路径等方面,介绍什么是架构,架构流程以及架构师职责和成长规划。本篇主题一、什么是架构二、项目中的角色三、架构师职责和工作内容四、架构工作流五、架构师成长... 查看详情

201|软件建模与文档:架构师怎样绘制系统架构蓝图?

...,我是李智慧。我在开篇词中说过,我们课程中的一系列软件架构设计是用设计文档的形式呈现的。所以,在拆解一个个案例之前,我们先来了解一些关于软件设计文档的基础知识,这样你在学习后面的具体案例时,就能更加清... 查看详情

作业一

一个软件架构师的工作过程    今天通过观看王平仲设计师在《梦想改造家》节目中拆分三角空间将畸形纸片屋变空中花园的视频,老师给我们留了一个思考问题,题目大概是通过一个建筑设计师的设计过程,说说... 查看详情

架构师jack专访:全面认识软件测试架构师

... 技术线主要的职责:更多是技术管理和业务知识。  软件测试架构师更多就是技术线的带头人。管理线的人更多的工作语言是:绩效,考评,时间点,质量等。  技术线的更多工作语言是:技术规划,技术可行性,技术价... 查看详情