想象本身不需要什么前提,三歲的孩子也會展開豐富的想象。問題是,當你要針對一個特定目標展開想象的時候,必須具備一些特定的前提條件。換句話說,由于隱喻適用于軟件開發(fā),所以在轉(zhuǎn)換視角來觀察軟件時,設(shè)計者必須具備一定的生活閱歷。為什么呢?因為,只有生活本身,才能為大連手機軟件開發(fā)案例提供取之不竭的素材。例如,經(jīng)歷過農(nóng)村生活的人,會了解在合適的季節(jié)種植合適的作物,他們會購買種子和化肥、在合適的土壤中播種、在秧苗長到一定的階段除草、遭受蟲害時去尋找合適的農(nóng)藥、在成熟的季節(jié)去收割、對作物進行簡單加工后去售賣。 熟悉這個過程并對它進行一些泛化的思考,你就會發(fā)現(xiàn),這個過程完全可以作為另一個過程的隱喻。由于隱喻的靈感通常來自生活實踐中的常識,所以從這個角度上來看,生活閱歷是必須具備的前提條件。
除了生活閱歷之外,一定的知識積累也是建立隱喻的必要條件。由于隱喻要為軟件開發(fā)所用,因此有必要使用相關(guān)的知識對想象進行修正。相關(guān)的知識其實都是一些基于隱喻的元素,掌握一項技術(shù)有點像在大腦中添加一個隱喻,例如,觀察者模式。而使用一項技術(shù),就是在應(yīng)用一個隱喻。
大連手機軟件開發(fā)模式是對架構(gòu)的進一步升級。由于抽象進入了較高的層次,架構(gòu)模式逐漸成為軟件行業(yè)中的語言元素。類似于自然語言,當我們提到天空、海洋、陸地、山川、森林、河流時,沒有人再會去探究這些詞匯的含義,因為這些詞匯本身構(gòu)成了我們的主觀世界。同樣,當我們提到三層架構(gòu)、分布計算、點對點、插件、SOA、MVC時,也很少需要過多解釋,除非我們還處在企業(yè)應(yīng)用領(lǐng)域軟件的語言入門期。仔細回想一下,我們在討論大連酒店管理軟件開發(fā)架構(gòu)設(shè)計場景時,那些架構(gòu)模式是我們進行溝通的基本語言。
這非常像談?wù)摲孔訒r的場景,我們總是會使用一些基本語言來
進行溝通,例如,我們會說自己的房子是磚混結(jié)構(gòu)還是鋼筋混凝土框架結(jié)構(gòu)等。架構(gòu)模式,為大連手機軟件開發(fā)架構(gòu)設(shè)計指定了范圍。不過,它對于軟件開發(fā)的約束,也僅限于此。有時候,我們需要反省內(nèi)心,體驗這些模式是否已經(jīng)成為我們思維的一部分;有時候,我們需要遠觀,觀察這些模式是否已經(jīng)自然地融入了我們的系統(tǒng)。