没有合适的资源?快使用搜索试试~ 我知道了~
首页架构漫谈(王概凯架构系列文章整理)
架构漫谈(王概凯架构系列文章整理)
5星 · 超过95%的资源 需积分: 5 379 下载量 103 浏览量
更新于2023-03-16
评论 3
收藏 797KB PDF 举报
整理了王概凯的关于架构的系列文章; 文章列表如下: 架构漫谈(一):什么是架构? 架构漫谈(二):认识概念是理解架构的基础 架构漫谈(三):如何做好架构之识别问题 架构漫谈(四):如何做好架构之架构切分 架构漫谈(五):什么是软件 架构漫谈(六):软件架构到底是要解决什么问题? 架构漫谈(七):不要空设架构师这个职位,给他实权 架构漫谈(八):从架构的角度看如何写好代码 架构漫谈(九):理清技术、业务和架构的关系
资源详情
资源评论
资源推荐
目录
架构漫谈(一):什么是架构? ..................................................................................................... 1
架构漫谈(二):认识概念是理解架构的基础 ............................................................................. 4
架构漫谈(三):如何做好架构之识别问题 ................................................................................. 7
架构漫谈(四):如何做好架构之架构切分 ............................................................................... 10
架构漫谈(五):什么是软件 ....................................................................................................... 14
架构漫谈(六):软件架构到底是要解决什么问题? ............................................................... 18
架构漫谈(七):不要空设架构师这个职位,给他实权 ........................................................... 22
架构漫谈(八):从架构的角度看如何写好代码 ....................................................................... 25
架构漫谈(九):理清技术、业务和架构的关系 ....................................................................... 32
架构漫谈(一):什么是架构?
作者: 王概凯 来源: InfoQ 发布时间: 2016-03-09 20:28 阅读: 22476 次 推荐: 47
架构漫谈是由资深架构师王概凯 Kevin 执笔的系列专栏,专栏将会以 Kevin 的架构
经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等
问题。专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感
悟,欢迎联系专栏负责人 Gary(微信 greenguolei)深聊。
本文是漫谈架构专栏的第一篇,作者将会通过类比的方式来介绍什么是架构以及为什
么会产生架构。
缘起
一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理
解。甚至于很多架构师一说架构,就开始谈论什么应用架构、硬件架构、数据架构等等。
我曾经也到处寻找过架构的定义,请教过很多人,结果发现,没有大家都认可的定义。套
用一句关于 big data 流行的笑话,放在架构上也适用:
Architecture is like teenage sex,everybody talks about it,nobody really
knows what is it。
事实上,架构在软件发明时的 N 多年以前,就已经存在了,这个词最早是跟随着建筑
出现的。所以,我觉得有必要从源头开始,把架构这个概念先讨论清楚,只有这样,软件
行业架构的讨论才有意义。
什么是架构?
架构的英文是 Architecture,在 Wikipedia 上,架构是这样定义的:
Architecture (Latin architectura, from the Greek ἀρχιτέκτων
arkhitekton"architect", from ἀρχι- "chief" and τέκτων "builder") is both the
process and the product of planning, designing, and constructing buildings
and other physical structures。
从这个定义上看,架构好像是一个过程,也不是很清晰。为了讲清楚这个问题,我们
先来看看为什么会产生架构。
为什么会产生架构?
想象一下,在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞
定,整个人类都是独立的个体,不相往来。为了解决人类的延续的问题,自然而然就有男
女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是
人每天生活的基本需求没有发生变化,还是衣食住行等生活必须品。
但是一旦多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了
族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产
出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力
都得到了提高,因为做的都是每个人擅长的事情。
整个人群的生产力和抵抗环境的能力都得到了增强。为什么呢?因为每个人的能力和
时间都是有限的,并且因为人的结构的限制,人同时只能专心做好一件事情,这样不得已
就导致了分工的产生。既然分工发生了,原来由一个人干生存所必需的所有的事情,就变
成了很多不同分工的角色合作完成这些事情,这些人必须要通过某些机制合在一起,让每
个人完成生存所必需的事情,这实际上也导致了交易的发生(交易这部分就不在这里展开
了,有机会再讨论)。
在每个人都必须自己完成所有生活必须品的生产的时候,是没有架构的(当然在个人
来讲,同一时刻只能做有限的事情,在时间上还是可能会产生架构的)。一旦产生的分
工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个体都
拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事
情,并具备一定的交易能力即可。
这实际上就形成了社会的架构。那么怎么定义架构呢?以上面这个例子为例,把一个
整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分
工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并
完成这个整体所需要的所有活动,这就是架构。由以上的例子,也可以归纳出架构产生的
动力:
1. 必须由人执行的工作(不需要人介入,就意味着不需要改造,也就不需要架构
了)
2. 每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且
由于人的结构限制,同时只能专注于做好一件事情,比如虽然有两只眼睛,但
是只能同时专注于一件事物,有两只手,无法同时做不同的事情。ps. 虽然有
少部分人可以左手画圆右手画框,但是不是普遍现象)
3. 每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅
长于这些工作的角色来完成,见 2,从而缩短时间)
4. 人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)
5. 目标系统的复杂性使得单个人完成这个系统,满足条件 2,3(如果个人就可以
完成系统的提高,也不需要别的人参与,也就不需要架构的涉及,只是工匠,
并且一般这个工作对时间的要求也不迫切。当足够熟练之后,也会有一定的架
构思考,但考虑更多的是如何提高质量,提高个人的时间效率)
有人可能会挑战说,如果一个人对目标系统进行分解,比如某人建一栋房子,自己采
购材料,自己搭建,难道也不算架构嘛?如果对于时间不敏感的话,是会出现这个情况
的,但是在这种情况下,并不必然导致架构的发生。如果有足够的自觉,以及足够的熟练
的话,也会产生架构的思考,因为这样对于提高生产力是有帮助的,可以缩短建造的时
间,并会提高房子的质量。事实上建筑的架构就是在长期进行这些活动后,积累下来的实
践。
当这 5 个条件同时成立,一定会产生架构。从这个层面上来说,架构是人类发展过程
中,由懵懵懂懂的,被动的去认识这个世界,变成主动的去认识,并以更高的效率去改造
这个世界的方法。以下我们再拿建筑来举例加强一下理解。
最开始人类是住在山洞里,住在树上的,主要是为了躲避其他猛兽的攻击,以及减少
自然环境的变化,对人类生存的挑战。为了完成这些目标,人类开始学会在平地上用树木
和树叶来建立隔离空间的设施,这就是建筑的开始。但是完全隔离也有很多坏处,慢慢就
产生了门窗等设施。
建筑的本质就是从自然环境中,划出一块独占的空间,但是仍然能够通过门窗等和自
然环境保持沟通。这个时候架构就已经开始了。对地球上的空间进行切分,并通过门窗,
地基等,保持和地球以及空间的有机的沟通。当人类开始学会用火之后,茅棚里面自然而
然慢慢就会被切分为两部分,一部分用来烧饭,一部分用来生活。当人的排泄慢慢移入到
室内后,洗手间也就慢慢的出现了。这就是建筑内部的空间切分。
这个时候人们对建筑的需求也就慢慢的越来越多,空间的切分也会变成很多种,组合
的方式也会有很多种,比如每个人住的房子,群居所产生的宗教性质的房子,集体活动的
房子等等。这个时候人们就开始有意识的去设计房子,架构师就慢慢的出现了。一切都是
为了满足人的越来越高的需求,提升质量,减少时间,更有效率的切分空间,并且让空间
之间更加有机的进行沟通。这就是建筑的架构以及建筑的架构的演变。
总结一下,什么是架构,就是:
1. 根据要解决的问题,对目标系统的边界进行界定。
2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切
分出来的部分,并行或串行开展工作,一般并行才能减少时间。
3. 并对这些切分出来的部分,设立沟通机制。
4. 根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成
目标系统的所有工作。
同样这个思考可以展开到其他的行业,比如企业的架构,国家的架构,组织架构,音
乐架构,色彩架构,软件架构等等。套用三国演义的一句话,合久必分,分久必合。架构
实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问
题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分
析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆
分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。
架构漫谈(二):认识概念是理解架构的基础
作者: 王概凯 来源: InfoQ 发布时间: 2016-04-17 10:25 阅读: 2783 次 推荐: 2
在前一篇文章中,我们讨论了什么是架构。事实上,这些基础概念对于做架构是非常重
要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并
不是主动的认识。比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回
答千奇百怪。这实际上就导致了做架构的时候,不同角色的沟通会出很多问题,那么结果也
就可想而知了。
如前一篇所说,架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然
概念的认识就非常的重要。这篇文章尝试讨论一下,如何去认识概念。当然这篇不是语言学
的文章,我这里所讨论的,和语言学可能不太一样,如果大家对语言学感兴趣,也可以去参
考一下。
首先我要先声明一下,这一系列的文章,都是以人的认识为主体去讨论的,解决的都是
人的问题,任何没有具体申明的部分,都隐含这一背景,以免大家误解。
概念也属于人认识这个世界并用来沟通的手段,包括“概念”这个概念,也是一样的。在
古代,不叫“概念”,称之为“名相”。
何为相?
一般我们认为:看到一个东西,比方说杯子,“杯子”就是一个名字,指代的看到的东西
就是相,就是事物的相状。我们一听到“杯子”这个词,脑海里就会浮现出一个杯子的形象。
而“杯子”这个词,是用来指代的是这个相状的,叫做名。合起来就叫做“名相”。
可是当我们把杯子打碎了的时候,我们还会称这个碎了的东西叫杯子吗? 肯定不会,
一般会叫“碎瓦片”,如果我们把碎瓦片磨碎了呢,名字又变了,叫做“沙子”。这就奇怪了,
同样一个东西,怎么会变出这么多的名字出来?
那究竟什么才是相?
实际上“相“表达的不是一个具体的东西,如上面所提的一个瓷器杯子,并不是指这个瓷
器,而是这个瓷器所起的一个作用:一手可握,敞口(一般不超过底的大小,太大口就叫碗
了),并且内部有一个空间可乘东西的这么一个作用。并不是指这个瓷器本身。这也是为什
么我们从电视上看到一个人拿杯子的时候,我们知道这个是杯子。但是实际上我们看到的都
是光影而已。所以说相实际上代表的是这个作用,并不是具体的某个东西,而名是用来标识
这个作用的,用来交流的。
剩余36页未读,继续阅读
demystify
- 粉丝: 103
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论15