隱喻是由團隊提出乙個程式工作原理的公共景象。它可以幫助我們從整體上把握系統的全域性,使得描述問題非常直觀。
團隊在做外掛程式系統的時候,我們拿到的只有rose圖,和一些基本設計的思路文件,但對於外掛程式系統究竟是什麼,每個人的理解深度、方式都不一樣。究其 原因,就是因為我們沒有乙個直觀,形象的描述系統的乙個東西。概要設計文件是不能算的,太粗且不形象。這個時候我們需要的就是乙個隱喻系統,幫助團隊統一 認識,使得交流更加有效,或者更加有趣。
外掛程式就是積木。
積木有自己的形狀、顏色、質地。
1、積木的形狀是外掛程式的介面,只要兩個積木的形狀吻合——兩個外掛程式的介面匹配,就可以組合起來。
2、積木的顏色是外掛程式的外觀,對於乙個已經整合到系統中的外掛程式,外觀是可以隨意變化的,也就是說系統是否能正確執行和外掛程式擁有什麼樣的外觀沒有關係,只是不同的外觀會帶來不同的使用者體驗。當然外觀也是非常重要的。
3、積木的質地是外掛程式的實現,同樣對於系統來說,外掛程式的實現是可以隨意修改的,只要形狀一樣就可以整合進來。也許積木在不同的地方擺放對實現的要求 是不同的。比如說要放在積木的最低層,但卻是用海綿做的一塊積木,這樣上面的積木非常容易倒。如果乙個外掛程式是非常基礎的外掛程式,但在實現上效能不夠好,依賴 於它的外掛程式可能就根本跑不起來。
4、積木是可以組合的,兩個或多個積木組合在一起可以當作乙個大的積木來用。兩個或多個外掛程式組合在一起同樣可以當作乙個大外掛程式來用。
5、積木可以重用。以前在其他地方用過的積木可以拿到這次來使用。對於以前開發過的外掛程式,一樣可以重複使用。
more...
外掛程式系統就是由積木按照意願搭出來的模型。
1、積木可以並行製造——外掛程式可以並行開發。
2、積木可以隨意組合——外掛程式系統可以根據配置來生成。配置檔案就相當於搭積木時的圖紙,雖然都是同一些積木,但根據圖紙可以搭出不同的東西。
3、玩積木分三個階段,做積木、搭積木和搭好積木後叫人過來觀賞。外掛程式系統分三個階段,做外掛程式、組裝外掛程式、生成系統給使用者使用。
4、搭積木很繁瑣,並且需要創造力——外掛程式系統組裝很累。
5、積木質地不夠好,或者兩個積木本來形狀不匹配卻放在一起,這樣搭出來的東西容易垮掉。外掛程式系統中,如果外掛程式實現有問題,或者配置檔案有問題——將介面不匹配的外掛程式組裝起來,這樣很容易造成系統崩潰。
6、積木搭出的模型可以隨時修改。外掛程式系統能更好地面對使用者變化和地區特性。「什麼,使用者不要這個功能?」那從系統中拿掉好了。「這個功能使用者想要改一下?」那把這個外掛程式修改就好了,其他地方沒有影響。
more...
系統終端使用者並不關心你的系統是用什麼技術實現的,他們只關心買這個軟體是不是真的能幫他們做事(一群沒有藝術鑑賞力的傢伙)。但軟體的核心是使用者,所以雖然我們採用的是外掛程式技術,但卻不能把一堆外掛程式丟給使用者,說「你想要什麼就自己搭吧,想要的都可以搭出來。」
外掛程式只是半成品,不能給使用者帶來商業價值,所以我們需要將外掛程式組裝成乙個真正的系統再交給使用者。有點像現在可以買到的拼圖遊戲,乙個盒子裡面裝的全 是紙屑、碎片,一般還有一張最終效果的示意圖,沒什麼人會覺得這些紙屑可以給人帶來美的享受。只有等到好事者們將這些紙屑一塊一塊拼接起來,我們才會發現 「哦,原來這幅畫還蠻好看的。不過這張紙好像到處都裂開了,影響美觀。」
說這些的意思就是,使用者不要積木,並且要盡量地將積木這個事實從使用者的視角上掩蓋掉,然後告訴他們,我們的系統是變形金剛。這樣就好了,讓他們琢磨去吧。
將外掛程式比作積木的隱喻能解決很多問題。包括我隨後會寫的關於外掛程式系統組裝策略的解釋。這樣的隱喻能更加形象地告訴別人外掛程式是什麼東西,交流起來更加方便。
不過我想的這個隱喻並不能涵蓋所有的問題。比如外掛程式之間的動態互動就不能用積木隱喻來解釋。不過暫時沒有想到更好的。
關於隱喻有一點要說明的,隱喻最好從自然界或者社會人事中來,這樣更加容易理解。如果團隊中有一種領域是大家都了解的,那也可以。比如說如果團隊對足球都很清楚,那麼用球隊來比喻某個系統同樣是可以的。
原則就是,要用具體的東西來隱喻抽象的軟體系統。如果用抽象來隱喻抽象,那只是換了個說法,沒有任何意義。
看看你是哪一型別的CTO
下面看看你是哪一型別的cto 第一類是天才型 天才cto善於創造新的東西,富於想象力並且自信,開拓獨特的機會 第二類是管理者型 管理者型的 cto 必須節省公司的預算,以免在技術產品,服務和專案勞動力上超標。第三類是主管型的 主管型的cto 樂於放棄直接干預研究,以為其他人創造乙個良好的環境,以使他...
看看你是哪一型別的CTO
下面看看你是哪一型別的cto 第一類是天才型 天才cto善於創造新的東西,富於想象力並且自信,開拓獨特的機會 第二類是管理者型 管理者型的 cto 必須節省公司的預算,以免在技術產品,服務和專案勞動力上超標。第三類是主管型的 主管型的cto 樂於放棄直接干預研究,以為其他人創造乙個良好的環境,以使他...
看看你是哪一型別的CTO
下面看看你是哪一型別的cto 第一類是天才型 天才cto善於創造新的東西,富於想象力並且自信,開拓獨特的機會 第二類是管理者型 管理者型的 cto 必須節省公司的預算,以免在技術產品,服務和專案勞動力上超標。第三類是主管型的 主管型的cto 樂於放棄直接干預研究,以為其他人創造乙個良好的環境,以使他...