中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

認(rèn)識概念是理解架構(gòu)的基礎(chǔ)

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

前一篇文章中,我們討論了什么是架構(gòu)。事實上,這些基礎(chǔ)概念對于做架構(gòu)是非常重要的,大部分人對于每天都習(xí)以為常的概念,都自以為明白了,但實際上都是下意識的,并不是主動的認(rèn)識。比如說“什么是桌子?”,做培訓(xùn)的時候,我經(jīng)常拿這個例子來問大家,回答千奇百怪。這實際上就導(dǎo)致了做架構(gòu)的時候,不同角色的溝通會出很多問題,那么結(jié)果也就可想而知了。

  如前一篇所說,架構(gòu)實際上解決的是人的問題,而概念是人認(rèn)識這個世界的基礎(chǔ),自然概念的認(rèn)識就非常的重要。這篇文章嘗試討論一下,如何去認(rèn)識概念。當(dāng)然這篇不是語言學(xué)的文章,我這里所討論的,和語言學(xué)可能不太一樣,如果大家對語言學(xué)感興趣,也可以去參考一下。

  首先我要先聲明一下,這一系列的文章,都是以人的認(rèn)識為主體去討論的,解決的都是人的問題,任何沒有具體申明的部分,都隱含這一背景,以免大家誤解。

  概念也屬于人認(rèn)識這個世界并用來溝通的手段,包括“概念”這個概念,也是一樣的。在古代,不叫“概念”,稱之為“名相”。

  何為相?

  一般我們認(rèn)為:看到一個東西,比方說杯子,“杯子”就是一個名字,指代的看到的東西就是相,就是事物的相狀。我們一聽到“杯子”這個詞,腦海里就會浮現(xiàn)出一個杯子的形象。而“杯子”這個詞,是用來指代的是這個相狀的,叫做名。合起來就叫做“名相”。

  可是當(dāng)我們把杯子打碎了的時候,我們還會稱這個碎了的東西叫杯子嗎? 肯定不會,一般會叫“碎瓦片”,如果我們把碎瓦片磨碎了呢,名字又變了,叫做“沙子”。這就奇怪了,同樣一個東西,怎么會變出這么多的名字出來?

  那究竟什么才是相?

  實際上“相“表達(dá)的不是一個具體的東西,如上面所提的一個瓷器杯子,并不是指這個瓷器,而是這個瓷器所起的一個作用:一手可握,敞口(一般不超過底的大小,太大口就叫碗了),并且內(nèi)部有一個空間可乘東西的這么一個作用。并不是指這個瓷器本身。這也是為什么我們從電視上看到一個人拿杯子的時候,我們知道這個是杯子。但是實際上我們看到的都是光影而已。所以說相實際上代表的是這個作用,并不是具體的某個東西,而名是用來標(biāo)識這個作用的,用來交流的。

  為何需要這個作用?

  這個作用其實是為了解決“人需要一個可單手持握,但是希望避免直接接觸所盛物體”這個問題。

  所以說,每個概念實際上所解決的,還是人遇到的某個特定的問題,我們把解決問題的解決方案,給定了一個名字,這個名字就是對應(yīng)的某個特定的概念。對于概念這個詞本身,為了統(tǒng)一指代這些名字,我們稱起這類作用的名字稱為“概念”。我們上次討論的“架構(gòu)”也是是同樣的一個特定概念,這里不再詳述。同樣,什么是“建筑”? “建筑”實際上解決的就是“人需要獨占的空間,并還能夠比較流暢的和外部世界溝通”的問題。

  再拿前面的“桌子”來舉例,什么叫“桌子”? 很多人回答,四條腿,或者說有腿,有一個平面,等等,柜子不也是這樣嗎?為什么我們看到柜子,不會認(rèn)為是桌子呢?即使我們放在柜子上吃飯,我們看到仍然會問,為什么在柜子上吃飯? 不會叫桌子。如果明白了上面的道理,就很簡單了,桌子實際上是為了解決人坐在椅子上,手還能夠支撐在一個平面上繼續(xù)開展活動的問題,一般會和椅子配對出現(xiàn)。坐在椅子上工作,對著柜子有一個很嚴(yán)重的問題——不知道大家試過沒有——就是腿無法展開的問題。當(dāng)這么坐著超過半小時就知道是什么痛苦了。所以桌子的平面下方一定會有一個足夠容納膝部和小腿的空間,來解決這個問題。解決了這些問題的裝置,才能稱之為桌子。

  類似也可以定義出來椅子,由此可見,桌子和椅子的高度也是有限定的,都是是解決人的問題,要符合人的身高:椅子的高度和深度,必須符合小腿和大腿的長度;椅背的高度要配合脊柱的高度;桌子的高度要配合小腿和脊柱的高度之和;成人和小孩的自然也就有區(qū)別了。這又變成生理學(xué)了,事實上要做好桌子和椅子,必須要理解人的生理結(jié)構(gòu),才能正確的理解桌子和椅子的概念。

  同理,為何我們可以在不同的語言間進(jìn)行翻譯,是因為雖然語言不同,但是人類所面臨的的問題是一樣的,所使用的名不同而已。對于不同的動物之間的翻譯也是同理。

  關(guān)于抽象

  在討論桌子這個概念的過程中,很多人會提出抽象這個概念,認(rèn)為定義桌子實際上就是抽象的一個過程。這里,我覺得有必要要澄清一下抽象這個概念,我認(rèn)為這個里面有誤解。我注意到,在做架構(gòu)師的群體中,不談抽象好像就不是一個合格的架構(gòu)師。

  抽象這個詞代表的含義,實際上是把不同的概念的相似的部分合并在一起,形成一個新的概念。這個里面問題很多:首先“相似的部分”在不同的人看來,并不一定那么相似;其次,抽象之后形成的是一個新的概念,和原來那個概念并不一樣,所解決的問題也不一樣。所以我們不能用抽象來定義一個事物,抽象實際上是一個分類的過程,完全是另一碼事。再舉一個例子,杯子和容器,很多人認(rèn)為容器是杯子的抽象,但是實際上杯子是杯子,容器是容器,它們所解決的問題是不一樣的。當(dāng)我們需要解決裝東西的問題的時候,會說容器;當(dāng)我們需要解決單手持握要裝東西的時候,會說要一個杯子。

  回過頭來,根據(jù)架構(gòu)的定義,要做好架構(gòu)所首先必須具備的能力,就是能夠正確的認(rèn)識概念,能夠發(fā)現(xiàn)概念背后所代表的問題,進(jìn)而才能夠認(rèn)識目標(biāo)領(lǐng)域所需要解決的問題,這樣才能夠為做好架構(gòu)打好基礎(chǔ)。事實上,這一能力,在任何一個領(lǐng)域都是適用的,比如我們?nèi)绻胍獙W(xué)習(xí)一項新的技術(shù),如Hibernate、Spring、PhotoShop、WWW、Internet等等,如果知道這些概念所要解決的問題,學(xué)習(xí)這些新的技術(shù)或者概念就會如虎添翼,快速的入手;學(xué)習(xí)一個新的領(lǐng)域,也會非常的快速有效;使用這些概念來解釋問題,甚至發(fā)明新的概念都是很容易的事。為什么強調(diào)這個呢,因為做架構(gòu)的時候,很多時候都是在一個新的領(lǐng)域解決問題,必須要快速進(jìn)入并掌握這個領(lǐng)域,然后才能夠正確的解決問題。

  以上通過幾個例子,討論了一下認(rèn)識概念的誤區(qū),如何有效的去認(rèn)識概念,明白概念背后的含義,以及如何利用對概念的理解,快速的進(jìn)行學(xué)習(xí)。掌握了這些原則,會有利于幫助我們在架構(gòu)階段,快速的識別和定位問題。

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:常用的svn和git命令

下一篇:svn常用命令整理