多年前,面對復(fù)雜,我會(huì)感概自身能力的不足。多年后,我可能會(huì)更多地反思復(fù)雜。愛因斯坦主張凡事力求簡單,但不要過于簡單,大衛(wèi)馬梅也認(rèn)為 Keep It Simple, Stupid就好。但遺憾的是,“復(fù)雜”仍然橫行霸道。不是復(fù)雜代表潮流,而是因?yàn)樵胶唵卧綇?fù)雜。換句話說,簡單更多地是一種能力的表現(xiàn)。當(dāng)然,在市場化的環(huán)境下,簡單只是利益最大化的手段之一,不排除復(fù)雜也是某些商品利益最大化的途徑。但我相信這只是少部分,按照“進(jìn)化論”規(guī)律,大環(huán)境總體還是往好的方面發(fā)展。
我遇過某行業(yè)核心系統(tǒng)會(huì)以應(yīng)用各種專業(yè)技術(shù)、功能復(fù)雜度和龐大的服務(wù)器數(shù)量為標(biāo)準(zhǔn)而號稱強(qiáng)大,但該系統(tǒng)運(yùn)維組做得最多的也唯一能做的運(yùn)維手段卻是重啟。到目前為止,服務(wù)器進(jìn)程掛死或宕機(jī)已經(jīng)是該系統(tǒng)的“日經(jīng)”現(xiàn)象。到了這種地步,其實(shí)更應(yīng)該思考架構(gòu)或代碼層次的優(yōu)化了。但系統(tǒng)高層責(zé)怪的卻是系統(tǒng)運(yùn)維組的各種“不專業(yè)”。歸根到底,這套系統(tǒng)的“復(fù)雜”只是這個(gè)行業(yè)的映射,也是體制、社會(huì)的一個(gè)縮影。所以,對于霧霾治理的憂慮,不無道理。在這樣的一個(gè)大環(huán)境下,更讓人擔(dān)憂的是,這種“復(fù)雜”往往會(huì)被誤以為能力的表現(xiàn)。
如果對一套系統(tǒng)架構(gòu)的了解,需要花費(fèi)數(shù)周的時(shí)間,我會(huì)祈禱這套系統(tǒng)能運(yùn)行至正常“退休”。如果說一個(gè)普通的程序員不需要對系統(tǒng)架構(gòu)有太多的了解,我會(huì)為這套系統(tǒng)的穩(wěn)定性和運(yùn)維成本而感到壓力山大。當(dāng)然也不排除“以0元投標(biāo)建站來欺詐后續(xù)龐大運(yùn)維費(fèi)用”的商業(yè)目的。還是以上述某行業(yè)核心系統(tǒng)為例,我曾經(jīng)試問過他們的開發(fā)和運(yùn)維人員對這套系統(tǒng)的了解程度,他們毫不猶豫且出奇一致的答復(fù)是“真正對這套系統(tǒng)了解的人不多”。事后我思考最多的不是這套系統(tǒng)的問題,而是在同樣的大環(huán)境下,房子更應(yīng)該擔(dān)憂的是質(zhì)量問題,而不是房價(jià)問題。如果以商業(yè)安全為由,不允許員工擁有“過多地”的源代碼權(quán)限,那也不應(yīng)該忽視員工對系統(tǒng)整體了解的重要性,否則遲早會(huì)為“裝B”的行為付出代價(jià)。
剛開始我也會(huì)深深地質(zhì)疑自己以“簡單”為核心理念設(shè)計(jì)的系統(tǒng)架構(gòu),不過經(jīng)過了時(shí)間的考驗(yàn),至少證明不比復(fù)雜的壞。曾經(jīng)的簡單會(huì)被客戶以“沒有運(yùn)用開源框架”而備受質(zhì)疑;也曾經(jīng)因接口沒有使用“webservice方案”而被輕視;更試過被其他項(xiàng)目組同事鄙視這簡單架構(gòu)的支撐能力。但時(shí)間確實(shí)是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。客戶可能不知道,當(dāng)前每日一億接口訪問量的系統(tǒng)上線到目前為止故障率為0;到后來我才知道曾經(jīng)對接過我們系統(tǒng)的開發(fā)人員原來只懂webservice而不會(huì)寫HTTP(S)+JSON;其他項(xiàng)目組的同事可能不知道我們的架構(gòu)也使用了單例,而他們只懂Spring才有IOC和AOP。曾經(jīng)羞澀的我現(xiàn)在變了,我更多地會(huì)以上述現(xiàn)象而變得更加自信。
無須質(zhì)疑,“通用”的背后意味著臃腫和復(fù)雜,但通用往往被過于褒義。我現(xiàn)在更加堅(jiān)信“創(chuàng)造更多思維正面碰撞的機(jī)會(huì)”是開源的目的,而非簡單的開放源碼。從這個(gè)角度去思考,如果開源過程能更加重視開源設(shè)計(jì)理念方面的材料,以簡單易懂的表達(dá)手段呈現(xiàn)給大眾百姓,全民參與開源也許是一種可能,帶來的效果不亞于市場化對經(jīng)濟(jì)產(chǎn)生的強(qiáng)大沖擊。如果參與開源的“門檻”減低,也不會(huì)出現(xiàn)以“看過源碼”為目的的人,更不會(huì)為了看懂其設(shè)計(jì)理念而不得不掌握更多的知識和花費(fèi)更多的精力來研究其源代碼。
我始終認(rèn)為,以“宏觀”的視野做“微觀”的事情,是社會(huì)未來趨勢。我不認(rèn)為博士生做農(nóng)民是大材小用,我更認(rèn)為這是一種“專業(yè)”的態(tài)度。一個(gè)眼神就可以“出賣”心靈,一行代碼就能看出實(shí)力。廣闊的視野更能接近事物的本質(zhì),本質(zhì)越清晰,事物越簡單。三十后競爭的不應(yīng)該是加班能力,而是思考本質(zhì)的能力。所以,一切簡單就好,但似乎沒那么簡單。