架构漫谈是由资深架构师王概凯 Kevin 执笔的系列专栏,主要讲述了什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。
首先什么是架构呢,架构要解决什么问题呢?开篇就给出了很好的解释,软件是为谁服务的?是为人而服务,那出现了问题,我们自然而然就要解决人的问题。
在我看来,架构就是把一个整体切割成为不同的小块,这些小块之间还有着不同的联系方式,将这些小块分给不同的人负责,最后通过一种特定的方式再结合为一个整体。
在阅读过王概凯的架构漫谈之后我理解到关于架构的更深层次的东西。思考了以下几个方面我有自己的一点认识:
1. 什么是架构:
作者说架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。
简而概之,架构便是分工合作。是多人合作解决问题时的分工方案。是分配工作和合并工作,角色完成整体项目的能力。
- 认识概念是理解架构的基础。
有一句话这样说:
架构就像是青少年时期的sex,每一个人都在谈论它,但没有人理解它。
其实很多我们自认为了解的东西,我们往往是不能准确得描述出来的。所以我们都知道架构是什么,都在心里对它有一个概念,但是具体呢,我们往往就会像茶壶里煮饺子一样,是有嘴说不出来的。
概念在古代被称之为明相。这样就比较清晰了,概念便是说明一个物体的作用。同一个物体用在不同的地方它便拥有不同的名称。这便提示我们,在给一个东西下定义的时候,应该是从它的作用出发的。
关于抽象,并不总是所有东西都需要用抽象来描述的。抽象是对概念共通处的提炼升华,而抽象后的概念,并不等同于原概念。而且抽象所描述的概念是不同于原概念的另一个概念。
3.如何识别架构。
识别问题我们应该识别问题的主体,从问题的本质出发,问题的目的是什么而不注重于解决的过程,条条大路通罗马,我们在解决问题的时候,应该有自己独立思考的过程。
4.架构的切分:
- 架构的切分的导火索是人的负载太重。
- 架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。
- 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
- 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化
5.什么是软件:
在谈到这个问题的时候我们应该明确一个问题,成本是一切问题的关键。计算机的出现便是因为节约成本,计算机能完成大量的计算。
有一句话这样说:世界的进步是靠懒人推动的。
软件是根本便是能让人完成更少的工作。
6.软件架构到底是要解决什么问题
5已经很明确了,最终目的便是解决人的问题。
7.不要架空设计师这个职位,给他实权。
在工作中,我们往往只是致力于完成自己的工作,那么最多只能成为一个工匠。因为这个过程解决的还是自己的问题,使我们对自己能力的不自信。 当我们跳出这一层面去发现问题,去给别人指出问题并给出解决方案这样才能当一个架构师。当别人发现问题分配给你去解决,就算你解决了这也是不能体现你的价值的,因为任何一个人都可以做到。而且别人给出是解决方案并不一定是最好的,也许是不恰当的,这样就算我们完成了工作,对别人来说也是没有完成的,因为我们并没有真正的解决别人的问题。
这也说明,我们对自己所从事的工作,还没有足够的自信,我们解决自己的问题还有困难,才不会去思考更深层次的问题,而只是局限于完成工作的这条线上。
架构师必须有自己的思想。架构师必须有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。
8.代码的问题:
在写代码的时候我们经常需要推翻重写,这完全是因为我们在开始的时候考虑不充分导致的。
优秀的代码必须要能够分离。任务分离,模块分离,只有各个模块之间的粘结降到最低这样在后续调整过程中才不会造成很大的工作量。
标签:读后感,架构,漫谈,问题,切分,解决,架构师,我们 From: https://www.cnblogs.com/lht020321/p/17146535.html