av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

再一個交付故事:征服遺留系統(tǒng)

背景

成都創(chuàng)新互聯堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十余年網站建設經驗成都創(chuàng)新互聯是成都老牌網站營銷服務商,為您提供成都做網站、網站設計、外貿營銷網站建設、網站設計、H5技術、網站制作、品牌網站建設、小程序制作服務,給眾多知名企業(yè)提供過好品質的建站服務。

就像曉強在***個故事開篇所介紹的那樣,如今,我們所交付的典型軟件已經變成了由若干個Cloud Native Application所組成的分布式的微服務應用,但是在我們所服務的組織中,仍然存在著類似下面的這種巨大的老舊的單體應用,我們稱之為遺留系統(tǒng)。

有些遺留系統(tǒng)仍然在組織中扮演著重要的角色,持續(xù)為客戶提供著價值,而有些則已經成為了組織發(fā)展的瓶頸,無法適應業(yè)務的快速變化。這個故事便是關于我們是如何幫助客戶有效的維護、提升、最終擺脫這些遺留系統(tǒng)的。

提到遺留系統(tǒng),我們并不陌生也不缺乏案例。過往的大型項目為我們提供了很多值得分享的經典案例,能夠從這些經驗和總結中感受到在這些項目中所克服的挑戰(zhàn)。這些挑戰(zhàn)分別來自于:

  • 如何有效的積累遺留系統(tǒng)的上下文
  • 如何對遺留系統(tǒng)進行維護和變更
  • 如何能平滑的完成對遺留系統(tǒng)的技術遷移

積累上下文

萬事開頭難,當我們開始任何一項交付工作時,最關鍵的問題便是如何能夠快速建立業(yè)務和技術上下文。而當我們開始接手一個遺留系統(tǒng)的時候,這個關鍵問題變得更加復雜和困難。

遺留系統(tǒng)的上下文就和一個沒完成的拼圖一樣,碎片散落一地。有些信息只存在某些人深深的腦海里,有些信息在巨大而且過期的文檔里,難辨真?zhèn)巍4a不會撒謊,但是動輒幾百萬行的代碼很容易讓你迷失方向.

在應對這一難題上,我們從以往經驗中形成了一套行之有效的方法。

首先,通過溝通和詢問客戶團隊的業(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)的修改工作之前,通過一定的單元測試覆蓋,加上之前我們已經建立好的Live Document,能夠為我們很好的提供質量保證。
  • 通過建立針對遺留系統(tǒng)的CI/CD Pipeline可以使我們在修改遺留系統(tǒng)時快速的得到反饋,對變更進行及時的驗證。
  • 通過創(chuàng)建Stubs來Mock遺留系統(tǒng)的外部依賴則能幫助我們有效的縮短反饋環(huán),可以大大增強我們對遺留系統(tǒng)進行變更的信心。

這些實踐看起來和我們所交付的其他項目沒有兩樣,但是當你需要為某個老舊語言編寫的遺留系統(tǒng)提供單元測試覆蓋的時候,當你的CI Pipeline需要支持一個老舊的商業(yè)中間件的自動化部署的時候,看似普通的技術實踐則會變得困難重重。

這個時候將堅持這些實踐作為原則變得尤為重要。這樣才能為遺留系統(tǒng)的變更提供有效的保障。

技術遷移

當然僅憑耐心和原則是無法征服動輒幾百萬行代碼的龐然大物的。應對遺留系統(tǒng)對技巧有著更高的要求。在這方面,我的ThoughtWorks同事們已經從過去的項目經歷中總結和分享了很多應對遺留系統(tǒng)的技巧。特別是在對遺留系統(tǒng)進行技術遷移的過程中。比如:

  1. 影響結構圖與特征草圖的使用,幫助我們去梳理程序中各個模塊之間的關系和依賴。
  2. Branch By Abstraction的使用,使我們可以逐漸的替換將系統(tǒng)中遺留的部分更新并剔除出去。
  3. Strangler Pattern的使用,讓新老系統(tǒng)在一定的時間段內共存,使遺留系統(tǒng)能夠平滑的遷移到新的技術架構。
  4. Feature Toggle的使用使我們能在部署后發(fā)現異常時快速的切換回老系統(tǒng),使遷移風險降到了***。
  5. 針對遺留系統(tǒng)的數據特點建立自定義的數據管道,完成遺留系統(tǒng)數據的遷移。

正是對這些技巧的靈活使用使我們真的做到了“舊的不變,新的創(chuàng)建,一步切換,舊的再見”。

寫在***

遺留系統(tǒng)是個難題,在應對一個巨大的遺留系統(tǒng)時沒有捷徑,同時也沒有神奇的秘籍或令人目眩的黑科技。重要的是,團隊需要意識到在面對一個遺留系統(tǒng)的時候我們需要具備:

  • 更強大的耐心 – 去有效的收集和鞏固遺留系統(tǒng)漫長發(fā)展過程中遺失的上下文。
  • 更堅定的原則 – 去堅持敏捷技術實踐,為遺留系統(tǒng)編織可靠的保護網給遺留系統(tǒng)的變更提供保障。
  • 更豐富的技巧 – 去***程度降低遺留系統(tǒng)技術遷移過程中對現有業(yè)務的影響,逐步平滑的完成遺留系統(tǒng)的遷移。

【本文是專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號:思特沃克,轉載請聯系原作者】


當前題目:再一個交付故事:征服遺留系統(tǒng)
分享URL:http://uogjgqi.cn/article/cdjcjih.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流