一本由經(jīng)濟學(xué)家撰寫的討論技術(shù)起源怔揩、進化與發(fā)展的書籍對我們這群技術(shù)從業(yè)者帶來何種啟示捉邢?拿到這本書時伏伐,我?guī)е@樣的疑惑潦匈,而當(dāng)我合上這本書時赤惊,我?guī)е@樣的思考掂为。
讀完整本昼扛,我不敢說我讀懂了這本書。個人認為到目前為止毅厚,我對這本書的思考仍然停留在書本上文字描述內(nèi)容上珍语,最多是有了一些額外的結(jié)合自己經(jīng)歷的發(fā)散。即使是沒能從表面向下挖掘到更深層次的內(nèi)涵,作者的一些只言片語仍然象劃撥夜空的閃電那樣擊中我的思維放接,使我突然意識到一些以前從未想到過的東西苟蹈,比如技術(shù)的組合、遞歸性、域定氮采、標(biāo)準(zhǔn)工程等殖侵,突然之間對技術(shù)這樣一個從未曾認真思考但又身在其中的范疇有了新的認識楞陷。
總得來說我個人覺得這是一本很有意思的書艾凯,技術(shù)的本質(zhì)這個看似內(nèi)容將無比枯燥的標(biāo)題蹬蚁,作者卻用異常生動的語言進行了闡述,引用了許多普通人都有所耳聞的例子,比如DNA锤灿、F-35始腾、蒸汽火車等,使得這本書讀起來非常不再乏味。
基本認知
通過閱讀這本書袍镀,我認識到關(guān)于技術(shù)的三個基本原理:
- 技術(shù)都是某種組合设江,這意味著任何具體技術(shù)都是由當(dāng)下的部件度帮、集成件或系統(tǒng)組件建構(gòu)或組合而成的冕屯;
- 技術(shù)的每個組件自身也是縮微的技術(shù)丘喻;
- 所有技術(shù)都會利用或開發(fā)某種效應(yīng)或現(xiàn)象;
技術(shù)組件的集成或組合是為了滿足它們的目的窟感。從這里起蜜自,對于“創(chuàng)新”就有了新的認識,它可以借由組合已有的技術(shù)就能觸發(fā)新技術(shù)的誕生荞彼,而不是突然降臨的顛覆式的東西仰泻。在建構(gòu)新技術(shù)時,既可以選擇從宏觀角度組合更大的技術(shù)復(fù)合體來建構(gòu)新技術(shù)贱除,也可以從微觀角度深入研究技術(shù)的組成替換或更新更小的組件從而獲得技術(shù)的進步屯阀。影響我們能否創(chuàng)新的因素取決于對技術(shù)中每個組件理解的深刻程度逗栽。
既然技術(shù)是組合而成的,技術(shù)就是結(jié)構(gòu)化建车。任意一個技術(shù)戒突,總有一個主要集成負責(zé)執(zhí)行基本原理以及其他支撐主要組合體執(zhí)行的次集成韵丑,這樣的結(jié)構(gòu)又可以在每個主集成和次集成中發(fā)現(xiàn),所以對技術(shù)的進一步認識是:
- 技術(shù)具有層級結(jié)構(gòu):整體的技術(shù)是樹干题涨,主集成是枝干纲堵,次級集成是紙條炕舵,最基本的零件是更小的分枝
- 技術(shù)具有遞歸性:結(jié)構(gòu)中包含某種程度的自相似組件咽筋,也就是說睹耐,技術(shù)是由不同等級的技術(shù)建構(gòu)而成的
技術(shù)既可以向上融入到另一個更大范疇或向下分解到一個更細小的技術(shù)上窖梁,因而在真實世界中山析,技術(shù)高度可重構(gòu)的,它們是流動的東西饱岸,永遠不會靜止掺出,永遠不會完結(jié),永遠不會完美苫费,也就是創(chuàng)新永遠存在汤锨。
我們?nèi)粘9ぷ魇怯蚝蜆?biāo)準(zhǔn)工程的寫照
個體技術(shù)會聚集成群,因為它們具有某種形式的共性百框、或者是可以使共同工作成為可能而共同固有的能力闲礼,這便是域。它以一種工具箱的形式存在铐维,我們可以從中選取有用的元器件或一系列的應(yīng)用規(guī)范建構(gòu)一個裝置的元器件柬泽,這個過程就是域定,而當(dāng)我們以一套不同的內(nèi)容來表達既定的目的嫁蛇,則稱之為重新域定锨并。最最典型的例子就是iPhone。
工程師與這些多變的技術(shù)進行結(jié)合的產(chǎn)生了一個標(biāo)準(zhǔn)工程的概念棠众,即執(zhí)行一個新項目時琳疏,在已知可接受的原則下聚集方法和設(shè)備的過程,是對已有技術(shù)的新的計劃闸拿、試制和集成過程空盼。在這個過程中工程師專注于解決問題,選擇適宜的組件作為解決方案新荤。他們總是傾向于重復(fù)使用以前曾經(jīng)用過的解決方案揽趾,并且傾向于使用可獲得的現(xiàn)成組件,所以當(dāng)一個解決方案被多次使用后就成了一個模塊苛骨,并因作為適用于標(biāo)準(zhǔn)用途的模塊而具有包容性篱瞎,它也成了一項技術(shù)苟呐。
這里對于軟件開發(fā)和設(shè)計的指導(dǎo)意義是非常明確的,這是從原理上解釋了為什么我們要思考組件復(fù)用俐筋,為什么要沉淀優(yōu)質(zhì)的軟件資產(chǎn)牵素。
新技術(shù)從何而來以及我們做何種準(zhǔn)備
復(fù)用固然能幫助我們快速可靠地解決問題,但是我們總會遇上從未遇到過的新問題澄者,那么新技術(shù)是如何產(chǎn)生的笆呆?它產(chǎn)生于將需求和能滿足需求的原理鏈接的過程之中,其中的配套解決方案以及次級解決方案最終使得需求得以滿足粱挡。
這是一個新技術(shù)產(chǎn)生的范式赠幕,建立需求與現(xiàn)象的鏈接,而在這其中的合適的可行性解決方案是我們努力尋求的東西询筏,我們尋求的過程其實逐步深入理解問題的過程榕堰,即找到一個解決我們面臨的問題的根本性原理,事實上這要求我們具備兩點:
- 熟悉被應(yīng)用的原理嫌套、現(xiàn)象的相關(guān)實踐或理論內(nèi)容逆屡,這樣才知道正確性與可行性
- 擁有足夠豐富的功能儲備庫,也就是有更多實現(xiàn)目的的候選路徑
其實這是對軟件行業(yè)技術(shù)從業(yè)者的一個本質(zhì)要求踱讨,為了時刻能夠應(yīng)對未知康二,精深的理論知識、廣博的知識面勇蝙、充足的備選方案以及落地代碼的能力是一個優(yōu)秀從業(yè)者和創(chuàng)新者的必要素養(yǎng)。
技術(shù)發(fā)展的機制挨约,一般有兩種味混,分別是內(nèi)部替換(internal replacement)和結(jié)構(gòu)深化(structural deepening)。內(nèi)部替換是指用更好的部件(子技術(shù))更換某一形成阻礙的部件诫惭。結(jié)構(gòu)深化是指尋找更好的部件翁锡、材料或者加入新組件。多樣性是技術(shù)令人著迷的部分夕土,每一種可能都有機會引領(lǐng)未來馆衔,我們在這場“自然選擇”中起了決定性的作用,通過選擇更好的方案來解決其內(nèi)部設(shè)計問題怨绣,技術(shù)的不同版本將逐步得到改善角溃。
結(jié)構(gòu)深化是在我們的日常工作中更加常見,我們習(xí)慣于增加一個系統(tǒng)來調(diào)協(xié)原有系統(tǒng)篮撑,使其功能更加完善和穩(wěn)定减细。技術(shù)結(jié)構(gòu)就是這樣不斷被”加深“從而變成了重重疊疊的復(fù)合體。這樣方式方法在軟件系統(tǒng)中也隨處可見赢笨,甚至有一句類似的至理名言——“計算機科學(xué)中的所有問題都可以通過引入一個間接層解決”未蝌,我們在考慮和設(shè)計軟件架構(gòu)時總會主動地增加次級系統(tǒng)或次級模塊來完成下面的目的:
- 加強基本性能——功能性
- 對改變或異常進行監(jiān)視并作出反應(yīng)——異常處理
- 適應(yīng)更廣泛的任務(wù)范圍——可擴展
- 增強安全性和可靠性——安全性驮吱、可靠性
所以我們軟件設(shè)計和開發(fā)領(lǐng)域奉之為經(jīng)典的東西,從作者對技術(shù)的解構(gòu)角度看就是存在必然性萧吠,從一般性原理上作出的解釋也印證了軟件設(shè)計中增加層來解決諸如依賴問題左冬、適配問題的合理性和正確性。
總結(jié)
作者以經(jīng)濟學(xué)者的身份纸型,通過研究技術(shù)對經(jīng)濟的作用進而探討了技術(shù)是什么拇砰,技術(shù)如何而來和怎么發(fā)展這樣本質(zhì)性的問題。正如我開篇說的绊袋,作者的很多想法是讓我能夠體會到深意的毕匀,但這樣的深意對我的啟示卻是我現(xiàn)在尚不能完全理解的,這是一本值得反復(fù)閱讀和推敲的書癌别,特別是在工作中不斷地結(jié)合工作心得來體會皂岔。