持續(xù)迭代的復(fù)雜系統(tǒng)確實(shí)更難治理,各種評估方法和標(biāo)準(zhǔn)出來之后霎奢,會看到非常多的問題户誓,從技術(shù)的角度來看很多都是不能忍,必須要去修改的幕侠,復(fù)雜系統(tǒng)對應(yīng)的業(yè)務(wù)又比較重要帝美,往往牽一發(fā)而動全身。
做架構(gòu)治理度量只是輔助手段晤硕,還是要從業(yè)務(wù)痛點(diǎn)入手悼潭,對問題進(jìn)行優(yōu)先級排序。因?yàn)橹挥姓驹跇I(yè)務(wù)視角來看舞箍,優(yōu)先級才更有價值舰褪,有些代碼和架構(gòu)爛到不行,但需求很少疏橄,基本不改占拍,線上問題也不多略就,當(dāng)下修改的優(yōu)先級就非常低,甚至是沒有必要的晃酒。
業(yè)務(wù)價值較高的優(yōu)化動作大多涉及架構(gòu)和組件級別的設(shè)計表牢,一旦要做優(yōu)化,動靜都不小贝次,而且都是底層改動崔兴,涉及大部分甚至是全部的業(yè)務(wù)模塊,如果準(zhǔn)備做不充分蛔翅,基本都是一通治理上線就出大問題敲茄。這種優(yōu)化不能急于求成,前期準(zhǔn)備要做好山析,要按一定的節(jié)奏來:
- 首先要有方案的可行性評估堰燎,效果評估,至少要找一個最復(fù)雜的場景做一次驗(yàn)證笋轨,避免真正開始做之后才發(fā)現(xiàn)大量未知的問題爽待。
- 其次是要有試點(diǎn),方案上不能一次全部完成再上線翩腐,而要小步迭代,逐步驗(yàn)證優(yōu)化效果膏燃。
- 最后還要保證有可用的回退機(jī)制茂卦,上線產(chǎn)生問題后,隨時可以回退到可用版本组哩,不至于影響業(yè)務(wù)等龙。
代碼級別的設(shè)計,即便做的很好伶贰,業(yè)務(wù)側(cè)效果并不那么顯著蛛砰。優(yōu)化主要依賴于日常的實(shí)踐,這個要先定規(guī)范和標(biāo)準(zhǔn)黍衙,做好把關(guān)泥畅,先保證正在進(jìn)行的要符合規(guī)范,逐步改善琅翻,是個長期活動位仁。但代碼設(shè)計也非常重要,只有好的代碼設(shè)計才能支持架構(gòu)和組件級別的優(yōu)化方椎,具有可行性且成本可控聂抢,否則重構(gòu)的成本可能比重寫還大搂赋,不如推倒重來观话。