漫談 · 軟體設計中的具象化
本文微信公眾號連結:https://mp.weixin.qq.com/s/PiZU1biNR5DeqrjnhXE9ag
何為具象化?要說具象,就要說說與具象有關的抽象、表象。
抽象與具象:
抽象是通過分析與綜合的途徑,運用概念在人腦中再現物件的質和本質的方法,分為質的抽象和本質的抽象。分析形成質的抽象,綜合形成本質的抽象(也叫具體的抽象)。作為科學體系出發點和人對事物完整的認識,只能是本質的抽象(具體的抽象)。質的抽象只能是本質的抽象中的一個環節,不能作為完整的認識,更不能作為科學體系的出發點。
具象是一個漢語詞彙,作形容詞時意思是具體的,不抽象的;作名詞時,意思是具體的形象;是文藝創作過程中活躍在作家、藝術家頭腦中的基本形象。也是文學藝術創作的基本要求。學者常治國先生楹聯《載敬堂》:"敦惠心官形具象 / 云為質素煥文光",就強調了具象在創作中的重要性。
具象與表象:
表象只是保持在記憶中某一事物的形象;具象則是作家藝術家在生活中多次接觸多次感受、多次為之激動的既豐富多彩又高度凝縮了的形象,它不僅僅是感知、記憶的結果,而且打上了作家、藝術家的情感烙印,受到他們的思維加工。它是綜合了生活中無數單一表象以後,又經過抉擇取捨而形成的。從心理學意義上說,作家、藝術家的創作過程就是具象的運動過程。具象的運動過程主要是激發、強化作家和藝術家的情感,並與情感相互作用的過程。一旦進入具象運動階段,創作者往往是情不自禁的,甚至是如痴如狂的,帶有很大的不自覺性,很少受抽象思維的控制。具象不是抽象思維的起點,而是在抽象思維的作用下,選取、綜合表象的結果。
從發生學上說,表象、記憶能力是人的低階心理水平,動物也有表象和記憶的能力,但動物沒有根據自己的需要、態度、體驗和思想觀念來綜合取捨表象進而形成具象的能力,具象為人類所獨有。
以上抽象、具象、表象的解釋並非出自於我。這裡只能說是摘抄。因為我需要一個比較精確的定義,先給大家一個概念。
在人類的繁衍的過程中,人類的創造是通過對客觀世界的認知,並傳承使得知識不斷的積累進步。才打到今天的文明。
那麼在這裡面有兩個動作。
首先,將對外界的具體事務,不斷的抽象,抽出事務的本質,形成個體的認知。這裡形成的認知,只存在於個體的腦袋裡。是無法傳承的。
接著,就是人類通過,文字,我國古人通過象形文字。通過一些具象化的描述,使得知識可以得到傳承。
而在傳承過程中,一些比較抽象的形容,知識,漸漸的成為普遍概念,這些概念,又成了一些具象化的底層知識。
這裡我以中醫來做例子。中醫,古人通過對人體的一些黑盒系統的探測,形成的一系列對人體系統的總結。
為了很好的傳承,中醫裡面出現了很多概念。比較被大家熟悉的有,五臟對應的五行理論。金木水火土,肺金,腎水,肝木,心火,脾土。這裡面通過五行這種具象化的描述,來對映人體五臟的之間的影響關係。
如金生水,水生木,木生火,火生土,土生金。這裡對應的是肺生腎,腎生肝,肝生心,心生脾,脾生肺。這裡的生講的是好的影響。當然還有不好的影響。
五行屬性歸類,主要用於概括人體及其與自然界多種事物或現象在屬性上的某些內在聯絡。在中醫上,說的是,天人相應。在《黃帝內經·素問》中就有提到,善言天者,必應於人。講的就是這個道理。
具象化,能夠將複雜,抽象難以理解的知識,通過具象對映成為普遍大家接受的資訊,使得知識的傳承門檻降低,效率提升。
這裡面又有一個問題,為何中醫,現在卻很難學。關鍵在於,中醫學,在古代都是以古代的具象化認知為基礎的傳承。而現在有多人對道家,對五行知識等了解的?所以才會有覺得難。
從上,我們看到了外部資訊,到接受,分析抽象得到認知;再通過將資訊描述出來。這裡藉助的描述方式是具象化輸出,將資訊傳承,或者說是溝通。降低門檻,提高效率。
當然,這裡面,要澄清一個事情,那就是將資訊輸出,有很多種方式,具象化,是比較普遍的形式。當然還有其他方式,有的是直接抽象的形式。
那麼在軟體設計中,資訊的傳遞、溝通是一個非常重要的動作。甚至能夠對生產效率起到至關重要的影響。
那麼講講哪些地方,我們可以用到具象化。
客戶提的需求,描述的時候,是可以通過具象化來提高效率的。比如,通過一些圖、表等形式。架構師,在頭腦中設計架構的時候,通過將架構圖、模組圖、流程圖等,來表達設計。
那麼程式設計師呢?程式設計師接收到設計圖的時候,做程式設計,大多數公司,或者大多數程式設計師,是沒有將程式設計,落地成圖,表等形式的。
那麼程式設計師通過開發語言,將程式輸出的這個過程中,表現出來的程式好與壞,完全取決於,程式設計師的功底和個人藝術行為。
具象化資訊描述的時候,若具象化的越具體,理解的人,會越容易接收。
在軟體設計中,有被抽象出來的具象化的設計,被稱之為設計模式。而且有很好的名稱,其中最有代表性的有工廠模式。
工廠模式,這種具象化的設計,從名稱上,就能夠立馬得到非常多的資訊。再通過對此模式的詳細描述,應該是很容易掌握的。
還有一本書叫《大話設計模式》採用的就是具象化的描述,這本書的好處,在於通俗易懂。接受度高。
類似的通過對這種模式的推廣,我們生活中有很多的模式,是可以用在軟體設計中的。如排隊系統,醫院的分診模型等等。其實生活的周圍就有非常多的模型。
那麼關鍵在哪裡呢?從系統性思維的角度來看,有三個方面:角色或者是元素;角色的職能;角色之間的聯絡。此三者,可以描述所有的模式。
其中角色定位清晰,職能單一,角色之間的聯絡具有層次性等,這些都是軟體設計中的經常提到的一些原則。
好的軟體設計,並沒有想象中那麼高大上。也許就在你身邊的模式中。好好感受生活中的模式,將其抽象成具象化的設計模式,將受益匪淺。
龔浩華
月牙寂道長
2018年12月07日
如果你覺得本文對你有幫助,可以轉到你的朋友圈,讓更多人一起學習。
第一時間獲取文章,可以關注本人公眾號:月牙寂道長,也可以掃碼關注