首页 > 其他分享 >阅读笔记(二)————《架构漫谈》

阅读笔记(二)————《架构漫谈》

时间:2023-11-06 09:25:00浏览次数:31  
标签:这个 架构 一个 漫谈 笔记 概念 桌子 杯子

    架构漫谈是由资深架构师王概凯 Kevin 执笔的系列专栏,

    读完第二章主要有下面几个方面:

何为相?

一般我们认为:看到一个东西,比方说杯子,“杯子”就是一个名字,指代的看到的东西就是相,就是事务的相状。我们一听到“杯子”这个词,脑海里就会浮现出一个杯子的形象。而“杯子”这个词,是用来指代的是这个相状的,叫做名。合起来就叫做“名相”。

可是当我们把杯子打碎了的时候,我们还会称这个碎了的东西叫杯子吗? 肯定不会,一般会叫“碎瓦片”,如果我们把碎瓦片磨碎了呢,名字又变了,叫做“沙子”。这就奇怪了,同样一个东西,怎么会变出这么多的名字出来?

那究竟什么才是相?

实际上“相“表达的不是一个具体的东西,如上面所提的一个瓷器杯子,并不是指这个瓷器,而是这个瓷器所起的一个作用:一手可握,敞口(一般不超过底的大小,太大口就叫碗了),并且内部有一个空间可乘东西的这么一个作用。并不是指这个瓷器本身。这也是为什么我们从电视上看到一个人拿杯子的时候,我们知道这个是杯子。但是实际上我们看到的都是光影而已。所以说相实际上代表的是这个作用,并不是具体的某个东西,而名是用来标识这个作用的,用来交流的。

为何需要这个作用?

这个作用其实是为了解决“人需要一个可单手持握,但是希望避免直接接触所盛物体”这个问题。

所以说,每个概念实际上所解决的,还是人遇到的某个特定的问题,我们把解决问题的解决方案,给定了一个名字,这个名字就是对应的某个特定的概念。对于概念这个词本身,为了统一指代这些名字,我们称起这类作用的名字称为“概念”。我们上次讨论的“架构”也是是同样的一个特定概念,这里不再详述。同样,什么是“建筑”? “建筑”实际上解决的就是“人需要独占的空间,并还能够比较流畅的和外部世界沟通”的问题。

再拿前面的“桌子”来举例,什么叫“桌子”? 很多人回答,四条腿,或者说有腿,有一个平面,等等,柜子不也是这样吗?为什么我们看到柜子,不会认为是桌子呢?即使我们放在柜子上吃饭,我们看到仍然会问,为什么在柜子上吃饭? 不会叫桌子。如果明白了上面的道理,就很简单了,桌子实际上是为了解决人坐在椅子上,手还能够支撑在一个平面上继续开展活动的问题,一般会和椅子配对出现。坐在椅子上工作,对着柜子有一个很严重的问题–不知道大家试过没有–就是腿无法展开的问题。当这么坐着超过半小时就知道是什么痛苦了。所以桌子的平面下方一定会有一个足够容纳膝部和小腿的空间,来解决这个问题。解决了这些问题的装置,才能称之为桌子。

类似也可以定义出来椅子,由此可见,桌子和椅子的高度也是有限定的,都是是解决人的问题,要符合人的身高:椅子的高度和深度,必须符合小腿和大腿的长度;椅背的高度要配合脊柱的高度;桌子的高度要配合小腿和脊柱的高度之和;成人和小孩的自然也就有区别了。这又变成生理学了,事实上要做好桌子和椅子,必须要理解人的生理结构,才能正确的理解桌子和椅子的概念。

同理,为何我们可以在不同的语言间进行翻译,是因为虽然语言不同,但是人类所面临的的问题是一样的,所使用的名不同而已。对于不同的动物之间的翻译也是同理。

关于抽象

在讨论桌子这个概念的过程中,很多人会提出抽象这个概念,认为定义桌子实际上就是抽象的一个过程。这里,我觉得有必要要澄清一下抽象这个概念,我认为这个里面有误解。我注意到,在做架构师的群体中,不谈抽象好像就不是一个合格的架构师。

抽象这个词代表的含义,实际上是把不同的概念的相似的部分合并在一起,形成一个新的概念。这个里面问题很多:首先“相似的部分”在不同的人看来,并不一定那么相似;其次,抽象之后形成的是一个新的概念,和原来那个概念并不一样,所解决的问题也不一样。所以我们不能用抽象来定义一个事物,抽象实际上是一个分类的过程,完全是另一码事。再举一个例子,杯子和容器,很多人认为容器是杯子的抽象,但是实际上杯子是杯子,容器是容器,它们所解决的问题是不一样的。当我们需要解决装东西的问题的时候,会说容器;当我们需要解决单手持握要装东西的时候,会说要一个杯子。

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

以上通过几个例子,讨论了一下认识概念的误区,如何有效的去认识概念,明白概念背后的含义,以及如何利用对概念的理解,快速的进行学习。掌握了这些原则,会有利于帮助我们在架构阶段,快速的识别和定位问题。

标签:这个,架构,一个,漫谈,笔记,概念,桌子,杯子
From: https://www.cnblogs.com/ZRGUGUGU818/p/17811804.html

相关文章

  • [机器学习复习笔记] Clustering 聚类 (K-means实现)
    Cluster(KMeans实现)1.KMeans介绍及符号说明给定样本集\(D=\{x_1,x_2,...,x_m\}\),\(\text{KMeans}\)算法针对聚类所得的簇划分\(\mathcalC=\{C_1,C_2,...,C_k\}\)(分为\(k\)类)最小化平方差:平方差其中\(x\)为当前簇\(C_i\)中的样本向量,\(\mu_i\)......
  • [机器学习复习笔记] Spectral Clustering 谱聚类
    SpectralClustering谱聚类1.邻接矩阵无向图\(G=(V,E)\),所有顶点之间的权重构成一个\(n\timesn\)的矩阵:\[W=\begin{bmatrix}w_{11}&w_{12}&\cdots&w_{1n}\\w_{21}&w_{22}&\cdots&w_{2n}\\\vdots&\vdots&\ddots......
  • elasticsearch笔记一
    安装官网链接:[InstallationandUpgradeGuide7.2]|Elastic=》InstallingtheElasticStackhttps://www.elastic.co/guide/en/elastic-stack/7.2/installing-elastic-stack.html系统支持:支持一览表|Elastic启动:sh/usr/local/elasticsearch/bin/elasticsearch-d-p......
  • 【刷题笔记】101. Symmetric Tree
    题目Givenabinarytree,checkwhetheritisamirrorofitself(ie,symmetricarounditscenter).Forexample,thisbinarytree[1,2,2,3,4,4,3]issymmetric:1/\22/\/\3443Butthefollowing[1,2,2,null,3,null,3]isnot:1......
  • 第八周学习笔记
    #定时器的基本原理概念以及应用##1.定时器的基本原理定时器本质上是一个计数器。如果输入的是一个恒定的脉冲信号源(一般情况下是时钟信号),我们就可以根据定时器的计数(脉冲个数)和时钟频率计算出时间,这个就是定时器的基本原理。当然,定时器也可以作为计数器来使用,例如计算外部脉冲......
  • 学习笔记八
    定时器及始终服务摘要:本章讨论了定时器和定时器服务;介绍了码硬件定时器的原理和基于Intelx86的PC中的硬件定时器;讲解了CPU操作和中断处理;指述了Linux中与定时器相关的系统调用、库函数和定时器服务命令;探讨了进程间隔定时器器、定时器生成的信号,并通过示例演示了进程间隔定......
  • 《需求分析与系统设计》阅读笔记3
     软件体系结构定义了系统中相互作用的软件构件及子系统的结构和组织形式。它提供了一种对设计的保护措施,以防止作为系统阶段的设计出现失败。因此在详细系统规格说明工作开始之前,软件开发团队必须选定全体开发人员都要遵循的体系结构模式和原则。所有软件建模的最重要目标都是......
  • 学习笔记8
    第五章定时器及时钟服务一、知识点归纳(一)硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以料青确的频率驱动计数器。使用一个倒计时值对计数器进行编程,每个时钟信号减1。当计改减为0时,计数器向CPU生成一个定时器......
  • 学习笔记
    双引号:把搜索词放在双引号中代表完全匹配搜索,搜索结果返回的页面包含双引号中出现的所有的词且顺序也必须完全匹配。减号:搜索不包含减号后面的词的页面,使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。星号*:在Google 中搜索,其中的*号代表任何文字。返回......
  • HTML笔记
    2023-11-051、HTML(超文本标记语言)是一种标记语言(标记标签(来描述网页)),而不是编程语言。HTML文档(Web页面)包含了HTML标签和文本内容。2、HTML标签(HTML标记标签)尖括号包围的关键词。 eg.<html>成对出现。  eg.<b>(开始标签(开放标签))和<b>(结束标签(闭合标签))      ......