用隱喻來更充分的理解軟體開發

2021-10-08 12:53:56 字數 1061 閱讀 1136

隱喻是對事物或知識的通俗抽象,能幫助人更好的理解知識,也可以啟發探索不同的方向。

化學家庫勒夢見一條蛇咬著自己的尾巴,醒來後他意識到類似的環狀分子結構可以解釋苯的各種特性。後來的實驗證實了他的這個假說。

好的隱喻除了幫助人們理解事物,也能助力事物的研究。例如天圓地方的隱喻無法解釋為什麼航海時會先看到桅杆後看到船隻。而地面其實是乙個球的隱喻除了能讓人很好的理解先看到桅杆後看到船,還能幫助地球自轉公轉方向的研究。

軟體迭代的過程和牡蠣的養殖很類似。一開始我們只需要乙個盡可能簡單、但能執行的版本,正如牡蠣開始孕育珍珠市的那顆細小粗糙的沙粒。在框架形成後我們一點一點的填充功能、邏輯,每次增加一小塊**,進而得到乙個龐大的可靠的系統。正如牡蠣將沙粒一點一點孕育成珍珠一樣。

大部分軟體的構建過程也可以說房屋的建築過程很類似,開工前需要明確房屋用途,對應需求分析。然後設計房屋框架,對應軟體框架設計。房間詳細設計,對應程式設計。房屋框架搭建,對應軟體框架程式設計。房間搭建,裝修和家具配置對應軟體程式設計,提效工具的開發。各種監察人員來檢查工地、地基、框架、佈線、及其他需要檢查的地方,對應軟體評審和測試。房屋搭建完成後的維護對應軟體產品的維護。

軟體技術有點像遊戲中的工具箱。當我們聽說了某項技術,我們的工具箱中就增加了乙個未解鎖的工具。當我們了解了這項技術的應用場景,它的原理,它與其他技術相比的優缺點時,我們就解鎖了這項工具。剩下的就是不斷實踐進而增加這項工具的熟練度了。

隱喻也是可組合的,我們開發軟體時既像建一棟房子,也像系統在生長,而開發過程中各部門人員也都在使用著各自工具箱中的工具來提公升自己的效率。

總結:隱喻並不是固定的、一成不變的,它總是隨著研究的深入和所面對的環境而變化的,並且是可以組合的。所以我們需要隱喻來啟發時,我們需要根據環境的需要和具體的問題來尋求盡量貼近的隱喻,然後對隱喻進行組合,進而啟發自己有沒有合適的拓展方向。

軟體開發的隱喻

最近看重新看 大全 以前我只是在接收作者傳達的資訊,思考的卻不多。這次看到軟體隱喻的時候,突然有個問題冒出來,為什麼把軟體開發隱喻放到前面?軟體開發應該是什麼樣子?由於軟體開發是人們以往不熟悉的過程,所以才會拿其他領域來模擬。比如拿書寫模擬,拿作物生長模擬,拿建築模擬,拿作畫過程模擬 黑客與畫家 這...

用禪宗理解 軟體開發的境界

用禪宗理解 軟體開發的境界 1.參禪之初 看山是山,看水是水 初學軟體開發時認為 c 是 c,vb 是 vb 都要乙個乙個學 2.禪有悟時 看山不是山,看水不是水 等到漸漸地運用純熟了,可以觸類旁通,發現以前學過的那些語言和將要新學的,總有這樣那樣的相通 相近 相似之處。任何一門 語言,都能快速上手...

軟體開發方法的理解

1 xp,scrum是軟體開發過程的管理方法 其中包括時間安排,人力和物質資源按時間階段的劃分利用,主要體現 統籌管理安排 瀑布式開發也是一種開發過程管理方法。同樣xp,scrum也可以放在面向過程的開發中,但xp是為物件導向量體定製的衣服,給面向過程穿上,效率 效益就大打折扣。2 領域驅動設計,風...