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

  阅读了一下王概凯《架构漫谈》,有一些感受与心得,仅仅发表一下自己的看法和理解。

1.什么是架构?

  架构是一个有些抽象的词汇,但转到其他行业或许会更容易理解。如古代朝廷的政府体系三省六部制、或者公司的部门分工等等,由一个个部分有机组成整体的概念有点类似架构的概念。比如一个远古部落,有男有女。这时候人们需要衣服以及食物,于是人们开始分工,男人出去打猎获取食物,而女人负责制衣等等形成了鲜明的分工,对每个角色有针对性的进行切分并有联系,最后有机的合并成为一个整体概念,这就形成了最简单的体系或类比为架构。若男女没有分工而是一同打猎,或者说是一同制衣这样的糟糕安排无疑是一种对人力的浪费,这也是架构需要解决的问题,即提高效率,增强稳定性,并在效率和稳定之中寻找一个最优的方案。

  架构其实就是指人们主动认识、解决问题的一个过程,对问题进行切分、合并并解决这个问题的实践活动。

  而对于软件架构来说认识什么是架构,有以下几点:

    1.根据要解决的问题,对目标系统的边界进行界定;

    2.并对目标系统按某个原则进行切分;

    3.根据2,使得这些部分能够有机的联系,合并组装为一个整体,完成目标系统的所有工作;

2.认识概念是理解架构的基础

  在古代,概念不叫“概念”,而称之为“名相”,名相可以拆分为两个词“名”和“相”,“相”指的是这个作用,而“名”指的是表示这个作用用来交流的词,因此“概念”称为“名相”,就这点出发而言大部分人对日常生活中的物件的认识都是下意识的,而不是主动的去认识。比如一个桌子,在孩童时代,父母指着桌子告诉你:长这个样子的东西就是桌子。从此,你记住了桌子,而仅仅只是被动的记住了桌子的样子,而没有主动去认识桌子的“相”,即桌子的作用:有四条腿支撑一个平面,上面可以放东西,下面中空的可以放腿。

  如果一个人朝你要一个杯子,你要理解他并不是在向你提出问题,而是直接给了你一个解决方案即一个杯子,他其实要杯子的作用是为了解决需要“一个可以易于持握,可以装水的容器”这个问题,根据架构的定义,正确认识概念,能发现概念背后代表的问题是要做好架构的必备的能力,只有正确认识问题才能着手解决问题。

3.架构的切分

  切分是利益的调整,对于古代帝王来说,自己一个人的权力太大就无法治理好整个天下,因为个人能力有限,因此,如何切分分配权力是历代帝王头疼的一个问题。而软件架构也是如此,不切分就会冗余而复杂。

  而切分的原则有几点:

     1.  必须在连续时间内发生的一个活动,不能切分。

     2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。

     3.  切分出来的部分,不应该超出一个自然人的负载。

     4. 切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。

  而所有的架构切分整体都应该是一个树状图,而不是有向图或者无向图。由整体切分为一个个大部分,然后再切分为一个个小部分。然后大问题就成了一个个小问题,因此可以分配给能力不同的个人去完成。而切分忌讳人的负载太重,而应使得每个执行者的权责对等,每个人可以对自己的部分负责,而对于一个总体树状图的架构切分来说,层数越多则必定沟通越多,则效率越低,所以分层越少越好,尽可能的变成平衡树,才能使效率最大化。

4.软件架构师

  架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责“产品”宏观的架构设计。

  很多行外的或者学生在问,这黑黑的窗口和一行行代码到底是如何变成一个软件的,这就是外人和程序员对软件的理解不同,相对的,普通程序员,也无法理解,他编的一个功能,到底在最后整体架构当中有什么作用,因而软件架构师很少的原因是浮躁的社会容不下一个架构师成长的时间和空间。一个框架师需要大量的项目经验,超级长的编码时间,坚持正确的方法和一个融洽配合的团队。而大部分中小企业因为资本不足,项目只谈功能,而不谈架构。用一句通俗的话来说就是“遇不到敌人,自然变不成老兵而要想成为软件架构师同时记住“越往上走,功夫越在代码之外”。

  而架构师有什么用呢?架构师的最大作用就是把技术边界往外推,不断侵入管理领域,让技术取代和优化人工管理。而用游戏来说,架构师是一个辅助游戏,给整个团队增加各种属性光环:如减低代码中的混乱,软团队中初级的程序员写出高级的代码,提高单位时间效率避免加班、大幅度减低企业成本等等。

原文地址:https://www.cnblogs.com/zlc364624/p/12330782.html

时间: 2024-10-12 09:35:34

[架构漫谈]软件架构师如何工作的相关文章

架构漫谈阅读有感

阅读了架构漫谈九篇博客https://www.infoq.cn/profile/1279517/publish,对架构和软件架构师的工作有了一个初步理论了解,也解决了个人一些对程序员发展方向和职业生涯规划的疑惑. 架构是一种使解决问题高质量高效率,并且可以全程对解决问题进行进度管控.阶段评价与优化的方法.它分为两种,一种是自然形成或者说是无意识形成的,不受人类有意识地去改造或者说是优化的,例如自然界的分工:生产者.消费者.分解者.另外一种是人类社会在长期发展的进程中逐步优化的,例如政府架构.公司

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

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

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

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

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

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

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

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

软件架构师如何工作

原文链接(转载请注明出处):软件架构师如何工作 前言 要想了解软件架构师如何工作,首先要搞清楚这么几个问题:什么是架构,怎样理解架构,如何做好架构,什么是软件,什么是软件架构师,软件架构师的工作是什么,怎么理清技术.业务和架构三者的关系.资深架构师王概凯在<架构漫谈>系列专栏中一一给出了这些问题的答案.本文也是本人阅读<架构漫谈>时所做的笔记与思考. 什么是架构 什么是架构,为什么会产生架构,作者由人类社会的演化,人类社会中分工的出现来引入问题的答案.把一个整体(完成人类生存的所有

架构漫谈阅读笔记

<架构漫谈>读后感 经过一个寒假对<架构之美>的解读,其实我已经对什么是架构有了一个初步的认识,但是还是有一些不太明白的地方.今天,我仔细地阅读了由资深架构师王概凯Kevin执笔的系列专栏--架构漫谈,让我对什么是架构.怎样做好架构.软件架构如何落地.如何写好程序等问题有了更深刻的认识. 正如文章开篇所说的那样:一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解.那么究竟什么是软件架构呢?其实,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由

读&lt;架构漫谈&gt;系列有感

读了这一系列博文,我对架构也有了大致的了解.在简单的阅读之后,我解决了几个问题. 第一个问题,什么是架构? 要学习架构,首先要知道架构.那么,什么是架构呢?引用<架构漫谈(一)>里的话就是把一个整体切割成不同的部分,由不同的角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构.架构的定义及步骤如下: 1.根据要解决的问题,对目标系统的边界进行界定. 2.并对目标系统按某个原则的进行切分.切分的原则,要便于不同的角

《架构漫谈》心得体会

首先,什么是架构? 要了解什么是架构,首先要知道它产生的原因:<架构漫谈>中说了五点,我的理解是: 架构--是人们为了提高生活质量,进而为了提高生产力,接着为了提高生产效率,而做出的对目标的有机的分割. 这种分割与建筑的架构是一样,对目标内部进行空间切分,又留下门窗与各部分进行连通,让各部分相互隔离而又 可以有效的沟通.就好像我们的社会,我们每个人通过自己的工作挣到钱(分割),让后通过钱与物的交易(沟通) ,获得我们各自需要的生活物品(目标).那么什么是架构?我的理解是: 架构--是解决问题的