软件架构师如何工作

前言

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

什么是架构

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

怎么理解架构

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

如何做好架构

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

什么是软件

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

什么是软件架构师

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

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

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

原文地址:https://www.cnblogs.com/dmego/p/8530258.html

时间: 2024-08-28 17:00:39

软件架构师如何工作的相关文章

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

在王概凯先生的9篇关于软件架构师的博客-<架构漫谈>中,我们可以看到文中谈到了架构的定义.含义,架构主要是要认识概念,如何做好架构之架构的切分,然后谈到了软件与架构之间的关系(什么是软件,软件架构是要解决什么问题,从架构的角度看如何写好代码,理清技术.业务和架构之间的关系了),下面依次写出我对9篇博客的理解与感悟,以及对软件架构师工作的理解. 一:什么是架构 在学习软件体系结构这门课之前,我们貌似只对软件开发以及简单的mis系统的开发有一丝丝的开发经验和感触,无架构之言.我们目前还无法像软件架

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

软件架构是软件开发中一个非常非常重要的过程.我们都知道在一个软件开发项目中,软件架构师是一个团队的核心,他负责整个软件开发的分工和沟通的安排,组织整个 团队进行分工合作,高效率的完成软件开发任务. 在之前的代码编写中,大多数是自己独立开发,编写代码和测试代码.从来没有加入过实际项目开发过程,也少有团队开发分工的经验,所以对这个软件架构的过程一点都 不了解.在小民哥的强烈推荐下,我十分"情愿"的打开了王概凯的架构漫谈系列博客,准备了解一下架构的内容. 架构漫谈分为九部分,每一部分都有不同

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

读完王概凯老师的架构漫谈,感觉自己对软件架构方面的知识了解了一点点.以前都只是听说软件架构师特别的厉害,高薪,但是具体说软件架构师是什么,具体是做什么的,自己并没有多大的一个观念.现在看王概凯老师的专栏,希望能让自己有一些收获. 看完该专栏的几篇文章之后,有以下收获: 1.什么是架构,为什么需要架构? 按文章中所说,架构是规划.设计和建造建筑物和其他物理结构的过程和产物.人们完成一项任务,因为每个人的能力不同,所擅长的方向不同,所以如果自己去完成一项任务一般要花费很长的时间,效率很低,但是人们对

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

阅读了一下王概凯的<架构漫谈>,有一些感受与心得,仅仅发表一下自己的看法和理解. 1.什么是架构? 架构是一个有些抽象的词汇,但转到其他行业或许会更容易理解.如古代朝廷的政府体系三省六部制.或者公司的部门分工等等,由一个个部分有机组成整体的概念有点类似架构的概念.比如一个远古部落,有男有女.这时候人们需要衣服以及食物,于是人们开始分工,男人出去打猎获取食物,而女人负责制衣等等形成了鲜明的分工,对每个角色有针对性的进行切分并有联系,最后有机的合并成为一个整体概念,这就形成了最简单的体系或类比为架

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

看了漫谈架构,首先理解了什么是架构和为什么会产生架构.架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地.有目的地去识别问题,并进行分解.合并,解决这个问题的实践活动.架构实际上解决的是人的问题. 什么是软件架构?软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构.每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构. 软件架构师是如何工作的?首先软件架构师要找到真正的问题,找到真正的问题,那么问

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

通过社会的架构举例,从原始自给自足独立完成衣食住行,到发展中分工合作.相互沟通.将事物完成到一个更好的水平.从而我知道了架构的动力: 必须由人执行的工作 每个人的能力有限 每个人的时间有限 人对目标系统有更高的要求 目标系统的复杂性使得比单个人完成这个系统更能提高质量,提高个人的时间效率 一个主动的去改造解决目标系统的方法,需要我们确定目标系统边界,按照一定原则进行切分,切分后的部分设立沟通机制,将切分部分形成有机的联系合为一个整体. 同时要明白架构是为了解决人的问题存在的,那么首先就要知道是为

软件架构师工作内容总结

架构师的职责及工作描述 系统分析员属于Analyst角色组合,与其相比,架构师则是属于Developer 角色组里的一个角色,一个非常重要的角色. 负责在整个项目中对技术活动和工件进行领导和协调.构架设计师要确立每个构架视图的整体结构:视图的详细组织结构.元素的分组以及这些主要分组之间的接口.因此,与其他角色相比,构架设计师的见解重在广度,而不是深度. 架构师负责理解系统的业务需求,并创建合理.完善的系统体系架构.架构师也负责通过软件架构来决定主要的技术选择.这典型的包括识别和文档化系统的重要架

软件架构师是如何工作的

软件体系结构的第一节课,是要让我们了解如果要做一名软件架构师,我们应该做什么和怎么做.在课堂上,老师通过<梦想改造家>中王平仲对特殊房型的改造来让我们从一名建筑师去了解什么是软件架构师. 所谓软件架构师,是软件行业中一种新兴行业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划,是主导系统全局分析设计和实施.负责软件构架和关键技术决策的人员. 软件架构师其实相当于是软件项目管理的主管,他负责设计与构筑公司的系统架

阅读《架构漫谈》后,思考软件架构师应该如何工作

老师上课围绕<架构漫谈>前四篇图文并茂的讲解了何为架构,架构的基础,以及识别问题和架构切分这些作为架构师需要了解的最基本的知识.现在要讨论的是软件架构师应该如何工作,如何更好的,更快的,更有效率的工作. 要想做好一个工作就应该了解这个工作最基本的需求是什么,而作为一个软件架构师就必须应该清楚的知道自己的职责是什么.也就是说,软件架构师需要负责什么工作,要解决什么问题.以下内容,就<架构漫谈>为中心,一步步细谈软件架构师应该如何工作. <架构漫谈>第五篇介绍了什么是软件.