架构漫谈是由资深架构师王概凯撰写的系列专栏,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

架构漫谈分为九篇:

什么是架构?

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

如何做好架构之识别问题

如何做好架构之架构切分

什么是软件

软件架构到底是要解决什么问题?

不要空设架构师这个职位,给他实权

从架构的角度看如何写好代码

理清技术、业务和架构的关系

第一篇 什么是架构?

主要讲到了缘起,什么是架构和为什么会产生架构。

由于问题越来越复杂,一个人已经很难完成想要完成的事情,而许多人一起却可以产生难以想想的力量,于是就有了架构。

什么是架构呢,文章中说到:

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

我想就是,对问题的计划,合理分配,从而可以使部分合并为整体的机制吧。

第二篇 认识概念是理解架构的基础

主要提到了对概念的理解,要能够发现概念背后的很多问题。

文章原文:要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。事实上,这一能力,在任何一个领域都是适用的,比如我们如果想要学习一项新的技术,如Hibernate、Spring、PhotoShop、WWW、Internet等等,如果知道这些概念所要解决的问题,学习这些新的技术或者概念就会如虎添翼,快速的入手;学习一个新的领域,也会非常的快速有效;使用这些概念来解释问题,甚至发明新的概念都是很容易的事。为什么强调这个呢,因为做架构的时候,很多时候都是在一个新的领域解决问题,必须要快速进入并掌握这个领域,然后才能够正确的解决问题。

第三篇 如何做好架构之识别问题

这篇主要讲到了识别问题的方法,因为文章中认为按照之前架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。

文章作者认为认识问题需要问两个问题:

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

第一个问题得到了答案,有什么问题才好得到答案,这一点我十分的赞同,不只是架构的问题,生活中也是如此。

第四篇 如何做好架构之架构切分

切分相当于任务的分配,文章作者认为:

  1. 架构的切分的导火索是人的负载太重。
  2. 架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。
  3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
  4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

我理解为切分一定要公平,可以使架构推进。

第五篇 什么是软件

我理解为,软件及是人把想做的事情交给计算机去做,从而形成的就是软件。

第六篇 软件架构到底是要解决什么问题?

首先什么是软件架构,文章作者提到:

  1. 软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。
  2. 每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

  所以当我们说软件架构的时候,我们一定要讲清楚,究竟说的是部署的架构,还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障,离开了这个,软件架构是一句空话。

那么单元就像每个人一样,人们一起工作需要架构,那计算机软件同样如此。

解决的问题,同样是如何高效稳定的完成,人们想要他完成的工作。

第七篇 不要空设架构师这个职位,给他实权

作者主要提到了架构师的前提条件等等,以及我们一定要树立信心,和平衡利益,以及扎实的软件基础能力,我想这对我来说现在还遥远吧,哈哈。

第八篇 从架构的角度看如何写好代码

我们必须要客服对时间的恐惧,养成良好的编码习惯,真正的去研究,让逻辑出现,这样可以大大提升编码能力,刚开始可能很困难,但一定要坚持。

第九篇  理清技术、业务和架构的关系

技术为了解决业务,而技术之间的联系结构就是架构。