隱喻--啓發 更深刻的理解

隱喻--啓發 更深刻的理解

早晨一上班就想起了隱喻, 不知道是不是我那位找到工作的緣故,世界上有的東西是不可預測的,但又是可以隱隱約約可見的,記得在敏捷軟件開改裏有這麼一個概念(MetaPhor),又想起我的畢設,不值得一提。我覺得這個概念有點像那個探險遊戲,就是不知道下一步做什麼,但知道下一步一定是找某個東西,才知道將來要做什麼,就這樣一步一步,最終完成探險。
 
軟件隱喻更像是一束搜索燈光,而不是一張地圖,它並不會告訴你去哪裏尋找答案;它只給你啓發,教你如何尋找答案,而不是像數學算法一樣規定出到哪裏找答案。一個公式是一套完整建立的、進行某一些任務的規則。它的結果是可預測的、確定的,並不取決於運氣。公式會告訴你直接從 A 點走到 B 點,中間不準繞路,不準隨意順便訪問C、D、E 或 F 點,也不準停下來聞一下玫瑰花香或者喝杯咖啡什麼的,一切必須按規定來。啓發是一種幫助你尋求答案的技術。它的結果往往和運氣有關,因爲它只告訴你如何去找,而並未告訴你應該找到些什麼。它不會告訴你怎樣直接從點 A 到點 B.甚至很可能它根本就不知道點 A 和點 B 在哪裏。事實上,可以認爲啓發是一個穿着外套的公式。它往往不可預測,更富有趣味,不會保證一定會發生或不會發生什麼。
 
公式和啓發之間的區別是微妙的,這兩個例子或許會說明一些問題。它們之間的主要區別是:它們與答案之間的直接程度。公式給予直接指令;而啓發則告訴你該怎樣找到這些指令,或者至少告訴你到哪裏尋找它們。
 
如果有一套指令告訴你該如何解決程序中的問題,這當然會使編程變得很容易,而且結果也可以預測了。但是編程科學目前還沒有那樣發達,也許永遠也不會。編程中最富於挑戰性的問題便是將問題概念化,編程中許多錯誤往往都是概念性錯誤,因爲每個程序在概念上都是獨特的,所以創立一套可以指導每一個問題的規則是非常困難,甚至是不可能的。這樣,從總體上知道該如何解決問題,便幾乎和知道某一特定問題的答案一樣重要了。
 
隱喻僅僅是啓發,而不是公式,因此,它更傾向於比較隨便,無拘無束。隱喻通過把軟件開發與你所熟知的事情聯繫在一起,從而使你對其有更深刻的理解。一些隱喻要好於其它隱喻。把軟件創建與建造建築物類比,表明開發軟件前要精心準備,並表明了大規模項目與小規模項目之間的差別。認爲軟件開發實踐是智能工具箱中的工具進一步表明,每個程序員都有許多自己的工具,沒有任何一種工具是萬能的。爲每件工作選擇合適的工具,是成爲一個優秀程序員的首要素質之一。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章