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