架构漫谈阅读感想

应老师的要求将王概凯老师的架构漫谈总体读了一遍,接下来谈一谈我读了之后的感想,大致上就是用自己的语言谈一谈短浅的理解。

首先我们要了解一下什么是架构?

  1. 根据要解决的问题,对目标系统的边界进行界定。
  2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
  3. 并对这些切分出来的部分,设立沟通机制。
  4. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

把所有需要完成的工作分成多份不同的工作,不同的人根据自己的特长做适合自己的工作而不必去做所有的工作,人与人之间通过沟通(不同的工作的人之间的沟通可能是不同的)构成有机的整体,从而是所有的工作完成。比如社会上有农民,医生,警察,老师,商人等等不同的角色,不需要每个人都去做生产,诊断,教学等所有工作,每种职业做好自己的工作就可以,通过交易和沟通变成有机的整体,从而得到粮食,安全保障和教育等资源。

2为什么要出现架构?架构的意义是什么?

没有架构的话,每人都需要做所有的工作,这样的效率十分的低下,就比如如果你想成长为一个心智健康的人,那么你需要独立完成接生,种地,教育等等工作,这涉及到很多的工作以及很多的技能,如果全部一个人干的话,精力肯定是不够的,精力不够就不可能向各个领域的更深层次挖掘,生存肯定是首要问题,这样的话每个人都要为基础的生存问题而忙碌,没有心思创新,社会就无法进步,也没有能力应对发生的一些灾难,比如此次疫情,如果没有架构后果不堪设想,每个人自己的生活都是问题的话又怎么能去研究疫苗,建设医院?所以架构的作用是毋庸置疑的。

架构解决谁的问题?

我认为架构解决的问题可大可小,他可以解决小到家庭,学校,企业,大到国家,社会,世界。一切都是为了满足人的越来越高的需求,提升质量,减少时间,更有效率的切分空间,并且让空间之间更加有机的进行沟通。

架构首先要确定边界也就是要搞清楚:是谁的问题。这个搞清楚了,问题的边界也就跟着确定了,再去讨论问题才有意义。作者以切土豆的笑话为例进行了讲解。

  1. 女主人提出一个问题,要切土豆下锅煮。
  2. 男主人有一个问题,女主人交代了自己必须要完成的一个任务。

每个人都是优先处理自己的问题,自然就选择了 2,完成了这个任务。这也是大部分软件工程师处理的方式,以自己认为对的方式完成自己的问题,没什么不对啊,也难怪能得到我们的共鸣。这个里面犯的错误是什么呢?

  1. 女主人公提出的实际上是解决方案,而不是烧土豆这个问题本身。女主人当时执行这个解决方案可能有困难,就把执行解决方案作为一个任务,委托给了男主人。
  2. 男主人得到了一个任务,尽心尽职地把这个任务完成了。

最后的结果是什么呢,男人做了很多工作,并且认为自己做的是对的,因此没有一个人对结果满意。因为真正的问题没有被发现,自然也就没有被解决,那么后续还得收拾残局,还要继续解决问题。事实上自己的工作并没有完成,反而更多了。把原因归结为沟通问题也是可以的,但对于解决问题似乎并没有太多的帮助。因为要改进沟通,这也是一个大问题。搞明白目标问题“是谁的问题,是什么问题”,当然也是需要沟通的。为了帮助自己更快的搞明白,首先要做的事是问正确的问题。架构师应该问的第一个正确的问题就是:目标问题是谁的问题。

要正确的认识问题,需要问两个问题:

  1. 这是谁的问题?2.有什么问题?

当得到的回答是支支吾吾的时候,我们就知道正确的方向在哪儿,以及需要做哪些事了。以我的经验,问题 1 会花比较多的时间,也是支支吾吾最多的地方,因为架构要解决的问题都是人的问题。但是一旦确定了答案,问题 2 就会变得非常容易。可以这样说,架构师的能力大部分会体现在问题 1 的识别上。

边界确定下来以后便是切分的工作。随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。

切分有以下几个原则:

  1. 必须在连续时间内发生的一个活动,不能切分。比如孕妇怀孕,必须要 10 月怀胎,不能够切成 10 个人一个月完成。
  2. 切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。比方说妈妈 10 月怀胎,妈妈有权利处置小孩的出生和抚养,同样也对小孩的出生和抚养负责。为什么必须是这样呢? 因为如果权利和义务是不对等的话,会伤害每个个体的利益,分出来执行的效率会比没有分出来还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。
  3. 切分出来的部分,不应该超出一个自然人的负载。当然对于每个人的能力不同,负载能力也不一样,需要不断的根据实际情况调整,这实际上就是运营。
  4. 切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。当然很多时候当我们把问题分析的比较清楚的时候,整个系统的边界会进一步的完善,这就会形成螺旋式的进化。但这不属于架构所应该解决的问题。进化的发生,也会导致新的架构的切分

实际上切分的过程就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念。

原文地址:https://www.cnblogs.com/2205254761qq/p/12364788.html

时间: 2024-08-24 11:19:25

架构漫谈阅读感想的相关文章

架构漫谈阅读笔记

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

架构漫谈阅读有感

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

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

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

架构漫谈阅读感悟一

在一个人可以完成所有事情的时候,是没有架构的概念的,因为所有问题,所有事情都是一个人解决,这时架构没有任何意义:但是当一群人在一起的时候,这时候需要给每个人分工,需要让每个人根据自己的能力发挥自己的长处,来为群体完成交代的事务,这时在给每个人分工的时候就用到了架构的原始概念,根据每个人的实际能力,给每个人分工不同的工作,让每个人做自己擅长的事情,提高每个人的生产力,那么整个人群的生产力就会提高. 架构必须是由人执行的工作,因为每个人的能力.时间有限,但是人对目标系统有着越来越高的要求,所以目标系

架构漫谈之感想

把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构.架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地.有目的地去识别问题,并进行分解.合并,解决这个问题的实践活动. 要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础.架构实际上

《架构漫谈》阅读笔记

架构漫谈是由资深架构师王概凯执笔的系列专栏,通过对其阅读,我从中逐步认识到了什么是架构,怎样做好架构,软件架构如何落地等内容. 一.什么是架构 在软件行业,对于什么是架构一直有很多的争论.事实上,架构在软件发明时的N多年以前,就已经存在了,这个词最早出现在建筑上.架构产生的五个动力可以概括为:由个人执行的工作:每个人的能力有限:每个人时间有限:人对目标系统有更高的要求:目标系统的复杂性使得单个人完成这个系统.当这五个条件同时成立,一定会产生架构.从这个角度上来说,架构是人类发展过程中,由懵懵懂懂

读《架构漫谈》的一些感想

在阅读王概凯的<架构漫谈>,一共9篇.读之前以为的架构:架构啊,应该就是像想要盖房子一样,用木头搭起来的一个框架吧.听这名字,架构架构,多像“构造的架子”.读之后:我是谁?我在哪?架构能吃吗? 虽然上面的描述方法采用了夸张的修辞手法,但真实情况确实和夸张后的情况相差无几——我是真的没有读懂理解王概凯写的9篇<架构漫谈>.虽然我大可以大片大片的“引用”其中的内容,但是那样就不是我写的博客了.我一向认为既然要抄,就要全篇搬过来,但可惜<架构漫谈>没告诉人们“未经许可,随意转

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

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

阅读架构漫谈九篇博客有感-1500字

架构漫谈是由资深架构师王概凯撰写的系列专栏,逐步讨论什么是架构.怎样做好架构.软件架构如何落地.如何写好程序等问题. 架构漫谈分为九篇: 什么是架构? 认识概念是理解架构的基础 如何做好架构之识别问题 如何做好架构之架构切分 什么是软件 软件架构到底是要解决什么问题? 不要空设架构师这个职位,给他实权 从架构的角度看如何写好代码 理清技术.业务和架构的关系 第一篇 什么是架构? 主要讲到了缘起,什么是架构和为什么会产生架构. 由于问题越来越复杂,一个人已经很难完成想要完成的事情,而许多人一起却可