掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流
背景

成都創(chuàng)新互聯堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十余年網站建設經驗成都創(chuàng)新互聯是成都老牌網站營銷服務商,為您提供成都做網站、網站設計、外貿營銷網站建設、網站設計、H5技術、網站制作、品牌網站建設、小程序制作服務,給眾多知名企業(yè)提供過好品質的建站服務。
就像曉強在***個故事開篇所介紹的那樣,如今,我們所交付的典型軟件已經變成了由若干個Cloud Native Application所組成的分布式的微服務應用,但是在我們所服務的組織中,仍然存在著類似下面的這種巨大的老舊的單體應用,我們稱之為遺留系統(tǒng)。
有些遺留系統(tǒng)仍然在組織中扮演著重要的角色,持續(xù)為客戶提供著價值,而有些則已經成為了組織發(fā)展的瓶頸,無法適應業(yè)務的快速變化。這個故事便是關于我們是如何幫助客戶有效的維護、提升、最終擺脫這些遺留系統(tǒng)的。
提到遺留系統(tǒng),我們并不陌生也不缺乏案例。過往的大型項目為我們提供了很多值得分享的經典案例,能夠從這些經驗和總結中感受到在這些項目中所克服的挑戰(zhàn)。這些挑戰(zhàn)分別來自于:
積累上下文
萬事開頭難,當我們開始任何一項交付工作時,最關鍵的問題便是如何能夠快速建立業(yè)務和技術上下文。而當我們開始接手一個遺留系統(tǒng)的時候,這個關鍵問題變得更加復雜和困難。
遺留系統(tǒng)的上下文就和一個沒完成的拼圖一樣,碎片散落一地。有些信息只存在某些人深深的腦海里,有些信息在巨大而且過期的文檔里,難辨真?zhèn)巍4a不會撒謊,但是動輒幾百萬行的代碼很容易讓你迷失方向.
在應對這一難題上,我們從以往經驗中形成了一套行之有效的方法。
首先,通過溝通和詢問客戶團隊的業(yè)務或技術人員去了解到盡可能多的信息,然后通過閱讀文檔或在可用環(huán)境中演示來得到更具象的認識,最終通過閱讀代碼來解除剩下的疑問,完成巨大拼圖中的一部分。
但是在實際操作中確仍然不簡單。往往情況是這樣的,在經過多次溝通和在文檔中查閱信息后,獲得的信息往往和代碼中的無法對應起來,使整個過程需要不斷的反復。我在去年經歷的一次遺留系統(tǒng)改造項目中就有一次類似的經歷,團隊被這個令人沮喪的過程打敗,做出了一些基于已有信息的假設,最終給項目的交付造成了不大不小的風險,團隊付出了很大的代價才保證了項目的順利交付。
在獲得了上下文后,如何保持信息能得到及時的更新并有效的將信息共享給團隊其他人是緊接著需要思考的問題。Specification by Example為我們提供了很好的方式將所有信息有效的管理起來,構建一套和代碼一起管理的可執(zhí)行的Live Document。但是對于一個遺留系統(tǒng),這仍然是一個漫長和繁瑣的過程。在這整個信息收集和記錄的過程中,團隊需要展現強大的耐心才能有效的達成目標為后面的工作打下基礎。
開展變更
對于有些遺留系統(tǒng)我們只需要對其持續(xù)的監(jiān)控,保證其能夠正常的提供服務。但是在大多數情況下隨著客戶的業(yè)務不斷變化,也會產生對遺留系統(tǒng)進行變更的需求,來迎合這些業(yè)務上的變化。那么如何在不破壞遺留系統(tǒng)的前提下修改遺留系統(tǒng)便成了應對遺留系統(tǒng)的第二個挑戰(zhàn)。
用我們所推崇和堅持的一系列敏捷技術實踐可以為遺留系統(tǒng)變更提供一張很好的保護網。
這些實踐看起來和我們所交付的其他項目沒有兩樣,但是當你需要為某個老舊語言編寫的遺留系統(tǒng)提供單元測試覆蓋的時候,當你的CI Pipeline需要支持一個老舊的商業(yè)中間件的自動化部署的時候,看似普通的技術實踐則會變得困難重重。
這個時候將堅持這些實踐作為原則變得尤為重要。這樣才能為遺留系統(tǒng)的變更提供有效的保障。
技術遷移
當然僅憑耐心和原則是無法征服動輒幾百萬行代碼的龐然大物的。應對遺留系統(tǒng)對技巧有著更高的要求。在這方面,我的ThoughtWorks同事們已經從過去的項目經歷中總結和分享了很多應對遺留系統(tǒng)的技巧。特別是在對遺留系統(tǒng)進行技術遷移的過程中。比如:
正是對這些技巧的靈活使用使我們真的做到了“舊的不變,新的創(chuàng)建,一步切換,舊的再見”。
寫在***
遺留系統(tǒng)是個難題,在應對一個巨大的遺留系統(tǒng)時沒有捷徑,同時也沒有神奇的秘籍或令人目眩的黑科技。重要的是,團隊需要意識到在面對一個遺留系統(tǒng)的時候我們需要具備:
【本文是專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號:思特沃克,轉載請聯系原作者】

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流