偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

架構(gòu)重構(gòu)秘籍:第一式對癥下藥

開發(fā) 前端
重構(gòu)后,各個(gè)系統(tǒng)之間通過接口交互,雖然增加了接口的工作量,但整體上各系統(tǒng)的發(fā)展和開發(fā)速度比原來快了很多。系統(tǒng)也相對更加簡單,不會(huì)出現(xiàn)某個(gè)子系統(tǒng)有問題導(dǎo)致所有業(yè)務(wù)都有問題的情況。

系統(tǒng)架構(gòu)是一個(gè)不斷演化的過程。雖然有時(shí)少部分架構(gòu)演化可能需要徹底推倒重寫,但大多數(shù)情況下,架構(gòu)演化是通過架構(gòu)重構(gòu)來實(shí)現(xiàn)的。相比全新的架構(gòu)設(shè)計(jì),架構(gòu)重構(gòu)對架構(gòu)師提出了更高的要求,主要體現(xiàn)在以下幾個(gè)方面:

業(yè)務(wù)已上線

在架構(gòu)重構(gòu)過程中,業(yè)務(wù)已經(jīng)在線運(yùn)行,這意味著重構(gòu)需要在保證業(yè)務(wù)持續(xù)發(fā)展的同時(shí)完成架構(gòu)調(diào)整,類似于“給飛行中的波音747換引擎”。相比之下,新架構(gòu)設(shè)計(jì)在業(yè)務(wù)尚未上線時(shí)進(jìn)行,即使出現(xiàn)問題對業(yè)務(wù)的影響也較小。

關(guān)聯(lián)方眾多

架構(gòu)重構(gòu)涉及多個(gè)業(yè)務(wù)關(guān)聯(lián)方,各方資源投入、業(yè)務(wù)發(fā)展速度和對架構(gòu)問題的敏感程度各不相同。如何減少對關(guān)聯(lián)方的影響,或者協(xié)調(diào)各方共同行動(dòng),是一項(xiàng)挑戰(zhàn)。新架構(gòu)設(shè)計(jì)在上線前對關(guān)聯(lián)方?jīng)]有影響。

舊架構(gòu)的約束

架構(gòu)重構(gòu)必須在舊架構(gòu)基礎(chǔ)上進(jìn)行,這是一個(gè)約束,會(huì)限制架構(gòu)師的技術(shù)選擇。新架構(gòu)設(shè)計(jì)中,架構(gòu)師的技術(shù)選擇范圍更廣。

數(shù)據(jù)轉(zhuǎn)換

即使完全推倒重來設(shè)計(jì)新架構(gòu),新架構(gòu)也會(huì)受到舊架構(gòu)的約束和影響,因?yàn)闃I(yè)務(wù)在舊架構(gòu)上產(chǎn)生的數(shù)據(jù)不能重來。新架構(gòu)必須考慮如何將舊架構(gòu)產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換過來。

綜合能力要求

架構(gòu)重構(gòu)對架構(gòu)師的綜合能力要求很高。他們需要說服產(chǎn)品經(jīng)理暫緩或暫停業(yè)務(wù),與其他團(tuán)隊(duì)達(dá)成一致的架構(gòu)重構(gòu)計(jì)劃和步驟,提出讓技術(shù)團(tuán)隊(duì)認(rèn)可的重構(gòu)方案。因此,架構(gòu)師需要在業(yè)務(wù)、團(tuán)隊(duì)和技術(shù)方面具備廣泛的能力。

通常情況下,當(dāng)系統(tǒng)架構(gòu)無法滿足業(yè)務(wù)發(fā)展時(shí),會(huì)出現(xiàn)一系列問題。這些問題可能表現(xiàn)為系統(tǒng)響應(yīng)緩慢、數(shù)據(jù)錯(cuò)誤、部分用戶訪問失敗等輕微情況,嚴(yán)重時(shí)可能導(dǎo)致系統(tǒng)宕機(jī)、數(shù)據(jù)庫癱瘓、數(shù)據(jù)丟失,或者系統(tǒng)開發(fā)效率低下。

起初,技術(shù)團(tuán)隊(duì)可能會(huì)針對具體問題進(jìn)行解決,一次又一次地應(yīng)對。然而,如果問題持續(xù)存在,可能長達(dá)數(shù)月甚至一年之久,團(tuán)隊(duì)可能會(huì)開始懷疑系統(tǒng)架構(gòu)是否存在問題。這時(shí),就會(huì)開始討論是否需要進(jìn)行架構(gòu)重構(gòu)。一旦確定需要重構(gòu)架構(gòu),架構(gòu)師將領(lǐng)導(dǎo)架構(gòu)重構(gòu)的分析和實(shí)施。

當(dāng)架構(gòu)師開始進(jìn)行架構(gòu)重構(gòu)分析時(shí),往往會(huì)感到如同進(jìn)入了一個(gè)迷霧森林,到處都是問題,每個(gè)問題都需要解決,讓人感到無從下手。有些架構(gòu)師會(huì)開始收集系統(tǒng)當(dāng)前存在的問題,并匯總成一個(gè)長達(dá)100行的Excel表格??吹竭@樣的表格,他們會(huì)感到困惑:這么多問題,要解決完需要花費(fèi)很長時(shí)間??!

然而,期望通過架構(gòu)重構(gòu)解決所有問題是不現(xiàn)實(shí)的。因此,架構(gòu)師的首要任務(wù)是從這些問題中識(shí)別出真正需要通過架構(gòu)重構(gòu)來解決的問題,并集中精力快速解決這些問題。重要的是專注于解決核心問題,而不是試圖通過架構(gòu)重構(gòu)解決所有問題。否則,團(tuán)隊(duì)可能會(huì)陷入人手不足、任務(wù)繁多、頭緒混亂的境地,花費(fèi)大量時(shí)間和精力,最終發(fā)現(xiàn)雖然做了很多工作,但每個(gè)問題依然存在。

特別是對于剛接手一個(gè)新系統(tǒng)的架構(gòu)師或技術(shù)主管來說,控制住沖動(dòng),避免過度重構(gòu)和優(yōu)化是很重要的。要避免進(jìn)行攤大餅式或運(yùn)動(dòng)式的重構(gòu)和優(yōu)化。

我們來看幾個(gè)具體的重構(gòu)案例。

1.平臺(tái)系統(tǒng)重構(gòu):解決不合理的耦合

M 系統(tǒng)是一個(gè)后臺(tái)管理系統(tǒng),負(fù)責(zé)管理所有游戲相關(guān)的數(shù)據(jù),重構(gòu)的主要原因是因?yàn)橄到y(tǒng)耦合了 P 業(yè)務(wù)獨(dú)有的數(shù)據(jù)和所有業(yè)務(wù)公用的數(shù)據(jù),導(dǎo)致可擴(kuò)展性比較差。其大概架構(gòu)如下圖所示。

圖片圖片

舉一個(gè)簡單的例子:數(shù)據(jù)庫中的某張表,一部分字段是所有業(yè)務(wù)公用的“游戲數(shù)據(jù)”,一部分字段是 P 業(yè)務(wù)系統(tǒng)“獨(dú)有的數(shù)據(jù)”,開發(fā)時(shí)如果要改這張表,代碼和邏輯都很復(fù)雜,改起來效率很低。

針對 M 系統(tǒng)存在的問題,重構(gòu)目標(biāo)就是將游戲數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)拆分,解開兩者的耦合,使得兩個(gè)系統(tǒng)都能夠獨(dú)立快速發(fā)展。重構(gòu)的方案如下圖所示。

圖片圖片

重構(gòu)后的效果非常明顯,重構(gòu)后的 M 系統(tǒng)和 P 業(yè)務(wù)后臺(tái)系統(tǒng)每月上線版本數(shù)是重構(gòu)前的 4 倍!

2. 游戲接入系統(tǒng)重構(gòu):解決全局單點(diǎn)的可用性問題

系統(tǒng)是游戲接入的核心系統(tǒng),一旦發(fā)生故障,將導(dǎo)致大量游戲玩家無法登錄游戲。然而,S系統(tǒng)并不具備多中心的能力,一旦主機(jī)房發(fā)生故障,整個(gè)S系統(tǒng)業(yè)務(wù)將不可用。其大概架構(gòu)如下圖所示,可以看出數(shù)據(jù)庫主庫是全局單點(diǎn),一旦主庫不可用,兩個(gè)集群的寫業(yè)務(wù)都將不可用。

圖片圖片

針對 S 系統(tǒng)存在的問題,重構(gòu)目標(biāo)就是實(shí)現(xiàn)雙中心,使得任意一個(gè)機(jī)房都能夠提供完整的服務(wù),在某個(gè)機(jī)房故障時(shí),另外一個(gè)機(jī)房能夠全部接管所有業(yè)務(wù)。重構(gòu)方案如下圖所示。

圖片圖片

重構(gòu)后系統(tǒng)的可用性從 3 個(gè) 9 提升到 4 個(gè) 9,重構(gòu)前最夸張的一個(gè)月有 4 次較大的線上故障,重構(gòu)后雖然也經(jīng)歷了機(jī)房交換機(jī)宕機(jī)、運(yùn)營商線路故障、機(jī)柜斷電等問題,但對業(yè)務(wù)都沒有什么大的影響。

3.X 系統(tǒng):解決大系統(tǒng)帶來的開發(fā)效率問題

X系統(tǒng)是創(chuàng)新業(yè)務(wù)的主系統(tǒng)。在業(yè)務(wù)快速嘗試和快速發(fā)展階段,系統(tǒng)設(shè)計(jì)著重于方便操作和快速開發(fā),沒有投入太多精力和時(shí)間。許多功能都被“塞”到同一個(gè)系統(tǒng)中,導(dǎo)致現(xiàn)在已經(jīng)難以進(jìn)行改動(dòng)。為了實(shí)現(xiàn)新功能或業(yè)務(wù),需要花費(fèi)大量時(shí)間來討論和梳理各種業(yè)務(wù)邏輯,存在踩坑風(fēng)險(xiǎn)。X系統(tǒng)的架構(gòu)如下圖所示。

圖片圖片

X系統(tǒng)和M系統(tǒng)在可擴(kuò)展性問題上看似相似,但根本原因不同。M系統(tǒng)的可擴(kuò)展性問題源于數(shù)據(jù)耦合,而X系統(tǒng)則是因?yàn)閷⑺袠I(yè)務(wù)功能集中在一個(gè)系統(tǒng)中,導(dǎo)致可擴(kuò)展性不足。此外,所有功能集中在一個(gè)系統(tǒng)中也可能導(dǎo)致某個(gè)功能出現(xiàn)問題時(shí)整站不可用的情況。舉例來說,如果某個(gè)功能導(dǎo)致數(shù)據(jù)庫負(fù)載過高,整站的業(yè)務(wù)都會(huì)受到影響而變慢。

針對 X 系統(tǒng)存在的問題,重構(gòu)目標(biāo)是將各個(gè)功能拆分到不同的子系統(tǒng)中,降低單個(gè)系統(tǒng)的復(fù)雜度。重構(gòu)后的架構(gòu)如下圖所示(僅僅是示例,實(shí)際架構(gòu)遠(yuǎn)比下圖復(fù)雜)。

圖片圖片

重構(gòu)后,各個(gè)系統(tǒng)之間通過接口交互,雖然增加了接口的工作量,但整體上各系統(tǒng)的發(fā)展和開發(fā)速度比原來快了很多。系統(tǒng)也相對更加簡單,不會(huì)出現(xiàn)某個(gè)子系統(tǒng)有問題導(dǎo)致所有業(yè)務(wù)都有問題的情況。

回顧重構(gòu)這三個(gè)系統(tǒng)的方案,現(xiàn)在看來似乎是理所當(dāng)然的,但實(shí)際上在進(jìn)行分析和決策時(shí)并不簡單。以M系統(tǒng)為例,當(dāng)時(shí)接手后遇到了許多問題:

  1. 數(shù)據(jù)經(jīng)常出錯(cuò)。
  2. 單機(jī)系統(tǒng)宕機(jī)后所有后臺(tái)操作不能進(jìn)行。
  3. 性能較差,有的操作耗時(shí)較長。
  4. 界面丑陋,操作不人性化。
  5. 代碼混亂,歷史上經(jīng)過多次轉(zhuǎn)手。
  6. 業(yè)務(wù)數(shù)據(jù)和游戲數(shù)據(jù)耦合,開發(fā)效率低下。

從這些問題中識(shí)別出重構(gòu)的目標(biāo)并不容易;要解決所有問題又需要耗費(fèi)大量人力和時(shí)間!因此,架構(gòu)師需要透過問題表象看到問題本質(zhì),找出真正需要通過架構(gòu)重構(gòu)解決的核心問題,從而做到有的放矢。這對架構(gòu)師的分析和判斷能力要求非常高,不能一看到問題就想到架構(gòu)重構(gòu),也不能只是針對問題進(jìn)行系統(tǒng)優(yōu)化。

當(dāng)然,原來發(fā)現(xiàn)的那些非架構(gòu)重構(gòu)問題也不能放任不管。重構(gòu)完成后,我們啟動(dòng)了多個(gè)優(yōu)化項(xiàng)目來解決這些問題,但這些優(yōu)化主要由團(tuán)隊(duì)內(nèi)部完成,和其他團(tuán)隊(duì)關(guān)聯(lián)較少,因此優(yōu)化速度很快。如果沒有重構(gòu)而是直接進(jìn)行優(yōu)化,則每次優(yōu)化都需要拉一大堆關(guān)聯(lián)業(yè)務(wù)的團(tuán)隊(duì)來討論方案,效率非常低下。

責(zé)任編輯:武曉燕 來源: 二進(jìn)制跳動(dòng)
相關(guān)推薦

2010-08-24 13:28:36

IP地址沖突現(xiàn)象

2021-04-12 13:20:43

WiFi路由器網(wǎng)絡(luò)

2010-02-24 16:00:29

2009-01-11 12:12:41

2012-04-16 15:16:32

2013-12-04 10:34:34

2019-01-08 07:45:54

2009-03-05 09:28:00

VPN連接Vista系統(tǒng)局域網(wǎng)

2020-09-23 14:59:12

大數(shù)據(jù)

2010-01-15 11:45:10

交換機(jī)

2011-06-28 13:05:37

2011-03-22 09:32:10

2011-12-01 14:43:25

噴墨打印機(jī)故障與解決

2017-07-06 12:33:19

聯(lián)想超融合

2016-11-04 16:29:15

移動(dòng)安全移動(dòng)設(shè)備風(fēng)險(xiǎn)

2019-04-19 14:14:24

2015-09-01 11:18:24

MES 2015論壇PIS系統(tǒng)銳捷

2024-12-27 12:27:24

2013-07-31 16:20:00

高可用集群軟件NEC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號