Refactor?or Patching?
鄭昀?20090925
1、
幾十年前,一幫鉆研國外開源代碼、研究過各個國家杰出軟件工程理論的程序員們,產生了建立一個自主架構的愿望。
這些人有的在外企底層做過coding或者打雜,其中一位若干年后成為了 company 的首席架構師。一些人目睹了另一個龐大軟件王國的四處擴張,威懾天下,心向往之并奉為圭臬,勸說其他人沿襲那個帝國的架構和思想,殊不知那個遠古時代骨子里就流著邪惡之血的帝國也早已病入膏肓。更多人還是土狼,在國內紅海中歷經磨礪,幾乎每個人都是人中之龍。
這樣一群人聚集起來,在幾十年前定下來了一個大架構,并設定了一個非常宏偉的 Vision,但這原本是一位圣賢為他的國度應付幾百萬獨立訪問者設定的,又如何能像古代的那些帝國開創者一樣定為“祖宗之法不可變”呢?
2、
龐大的工程就這么建立了起來,它確實讓 company 獲益,創造了世人矚目的諸多成就,頂住了巨大的以億計的流量沖擊。可人們都知道它隱隱有一個硬傷,沒有太多實踐經驗的那群程序員,雖然早已學習過很多優秀的、行之有效的設計模式,但不知為什么卻沒有貫徹到他們親手打造的工程里。
他們留下了太多生硬的接口,工作流多如牛毛,但指導它們運轉的原則卻不那么清晰,甚至蹩腳。隨著時間的流逝,在這些接口上衍生出了太多的應用,有太多的新程序員在這些接口和服務上繼續開發,并嘗試升級系統,但就像多數工程一樣,在一個跑了幾十年的生產系統上,要讓系統繼續不間斷地應付與日俱增的訪問量,你只能零敲碎打修修補補。
無數新程序員學習這個系統的代碼時,都呼吁“重構”“敏捷”。但項目總監、產品總監、運營總監們知道,“重構”談何容易,誰能承受為了升級而暫停服務?誰能承擔重構失敗的責任?沒有測試環境,只有生產環境,你怎么保證你的重構是正確的。
在原有系統上掛接的各個運營單位要在每一次系統小升級中分一杯羹,在每一個小補丁上都要嵌入自己的推廣代碼,所以也都不愿意自己被砍掉。
你有什么好辦法?
鄭昀?20090925 北京報道
總結
以上是生活随笔為你收集整理的Refactor?or Patching?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不重新编译DLL,让FCKEditor支
- 下一篇: rmvb怎样转mp4(qlv格式转换成m