19世紀(jì)末的中國(guó),那是一個(gè)已經(jīng)開(kāi)發(fā)了3000多年的軟件系統(tǒng),采用封建架構(gòu),包含了3億多行代碼,整體運(yùn)行效率非常低下,而且充斥著無(wú)數(shù)bug,隨時(shí)可能發(fā)生崩潰。
然后崩潰真的發(fā)生了,長(zhǎng)達(dá)100年間,無(wú)數(shù)工程師和架構(gòu)師試圖找到解決的方法,重新開(kāi)發(fā)吧,推到一切舊有的代碼,重新編寫(xiě),采用全新的架構(gòu),當(dāng)然采用哪種架構(gòu)也是爭(zhēng)論的焦點(diǎn),有說(shuō)民主的,有說(shuō)君主立憲的,還有搞軍閥割據(jù)的,還有玩復(fù)辟的。。。。
但是他們都忘了一個(gè)很重要的問(wèn)題,這個(gè)系統(tǒng)中,每個(gè)模塊,既是系統(tǒng)的一部分,也是系統(tǒng)的開(kāi)發(fā)者,他們由運(yùn)行的每一行代碼組成又是這些代碼的編寫(xiě)者,任何方案只有得到絕大多數(shù)模塊的支持才能實(shí)行。
最后,只有毛澤東這個(gè)架構(gòu)師的方案獲得了絕大多數(shù)模塊的支持,并且積極參與開(kāi)發(fā),從而重新編寫(xiě)改造了大部分模塊,但是仍然沒(méi)有解決問(wèn)題,運(yùn)行效率依然不高。
鄧小平出現(xiàn)了,他沒(méi)有試圖再次推翻重寫(xiě)一個(gè)新系統(tǒng),而是發(fā)現(xiàn)毛的架構(gòu)沒(méi)有太大的問(wèn)題,只是代碼編寫(xiě)的質(zhì)量太差,而且由于急于加入新功能而導(dǎo)致了代碼規(guī)模過(guò)度膨脹(超過(guò)13億行代碼了),所以這才是運(yùn)行效率低下的根源。
所以鄧小平的方法不是革命,而是重構(gòu),在既有架構(gòu)下,重構(gòu)(改革)所有模塊,移植其他項(xiàng)目的成功代碼(開(kāi)放),而且采用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的模式(摸著石頭過(guò)河。。。),開(kāi)發(fā)組實(shí)行5年期的sprint(五年計(jì)劃。。)。
一些重大的重構(gòu)都會(huì)先做個(gè)prototype(特區(qū)。。。),同時(shí)架構(gòu)上不再固守單一平臺(tái),允許異構(gòu)平臺(tái)的存在(一國(guó)兩制,私有制經(jīng)濟(jì))。