我看《架构漫谈》——1

我记得我刚报选这个专业的时候,我的一个大我一届的朋友问我学什么专业的,我告诉他是软件工程。他听见后和我说软件好啊,好工作挣的钱多,尤其是“价购”师!这就是我当时理解的架构,我记得我当时还像个傻子一样给别人解释啥是“价购”,终于在后来的上课才理解是“架构”,现在想想还不免脸红。架构师这个职业其实并不实在软件中来的,所有工科专业应该都会发展架构师这个职业,不过最先出自建筑工程。

今读《架构漫谈》,其实对我敲代码,在个人编程能力上没有任何帮助,因为他不是告诉我们怎么去敲代码,什么语法怎么用;他是更深层次的东西,会敲代码是专业基础,也是最低级的东西;作为程序员应该懂得一个项目中怎么去敲代码,怎么让自己的代码更合理更符合用户的想法,这就用到了软件工程中重要的职业——架构师。

  1. 1.    欲聊架构师,先理解架构。

架构,早在很久以前就出现了,因人而现。三个和尚没水喝的故事告诉我们,当有三个和尚的时候,就应该把每个人的分工协调开,这样既不会让大家没水喝,还能提高大家的工作效率。虽然不是特别贴切,但是大致有这个意思。想象一下,在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来。为了解决人类的延续的问题,自然而然就有男女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是人每天生活的基本需求没有发生变化,还是衣食住行等生活必须品。但是一旦多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。

如果在方式上表述,架构就是将任务划分,分工解决并在最后再将结果有机结合,从而完成任务。简单地说:架构实际上解决的是人的问题。

  1. 2.  架构师做什么?怎么做?

架构师都充当什么角色呢?妻子和丈夫的例子很好的给了一个介绍。在一个正常工作的团体中,每个人都会对同一问题有不同的看法,关照角度不同,也就导致结果不能有机的结合,架构师在这里的做法就是提出第一个问题,当然他需要真的明白用户需求,提出唯一的一个角度,统一大家的目的这样就促成了任务的行进。

由上面的分析可以看出,找出问题的主体,是做架构的首要问题。这也是我一再强调的,我们要解决的问题,一定都是人的问题。更进一步,架构师要解决的,基本都是别人的问题,不是自己的问题。再进一步,我们一定要明白,任何找上架构师的问题,绝对都不是真正的问题。为什么呢? 因为如果是真正的问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。

明确目标问题之后,就是开工了,那问题又来了:如何开工?问问架构师吧!工作的划分就是大家利益划分,因为必须要让每个人在时间和空间上都不能由太大的负载,而且还要协调大家的权利和义务等等。由上述两个原因我们能得出划分的原则:

a)   必须在连续时间内发生的一个活动,不能切分。比如孕妇怀孕,必须要 10 月怀胎,不能够切成 10 个人一个月完成。

b)   切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。比方说妈妈 10 月怀胎,妈妈有权利处置小孩的出生和抚养,同样也对小孩的出生和抚养负责。为什么必须是这样呢? 因为如果权利和义务是不对等的话,会伤害每个个体的利益,分出来执行的效率会比没有分出来还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。

c)    切分出来的部分,不应该超出一个自然人的负载。当然对于每个人的能力不同,负载能力也不一样,需要不断的根据实际情况调整,这实际上就是运营。

d)   切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。当然很多时候当我们把问题分析的比较清楚的时候,整个系统的边界会进一步的完善,这就会形成螺旋式的进化。但这不属于架构所应该解决的问题。进化的发生,也会导致新的架构的切分。

e)   架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

原文地址:https://www.cnblogs.com/zhaochenguang/p/10508080.html

时间: 2024-10-10 04:55:56

我看《架构漫谈》——1的相关文章

iOS 组件化架构漫谈

组件化架构漫谈 前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目.在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构.当然不是直接拿来照搬,还是要根据公司具体的业务需求设计架构. 在学习组件化架构的过程中,从很多高质量的博客中学到不少东西,例如蘑菇街李忠.casatwy.bang的博客.在学习过程中也遇到一些问题,在微博和QQ上和一些做iOS的朋友进行了交流,非常感谢这些朋友的帮助. 本篇文章主要针对于之前蘑菇街提出的组件化

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

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

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

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

读王概凯----架构漫谈(一):什么是架构? 有感

在本学期我们开设了软件体系架构这门课程,提到了架构一词,我找到了由资深架构师王概凯 Kevin 执笔的“架构漫谈”系列专栏----架构漫谈(一):什么是架构?进行相关了解. 这篇文章主要是在表述到底什么是架构,从架构的起源开始论述.文中提到架构一词在业内有很多争论,每个人都有自己的理解,但却没有大家都认可的定义,套用一句在大数据流行的笑话就是:Architecture is like teenage sex,everybody talks about it,nobody really knows

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

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

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

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

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

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

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

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

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

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