架構(gòu)師重構(gòu)代碼的12條軍規(guī)

作者 |?Raffi Krikorian

架構(gòu)重構(gòu)的原因是什么,是為了滿足業(yè)務(wù)的需要還是只是覺得架構(gòu)不好看?
除了架構(gòu)重構(gòu)之外,還有其他備選方案嗎?是否都分析過這些方案的利弊?
重構(gòu)的目標(biāo)可以量化,或者說可以測試嗎?
重構(gòu)完成的標(biāo)準(zhǔn)是什么?得到業(yè)務(wù)部門或者領(lǐng)導(dǎo)的認(rèn)可了嗎?
能否把重構(gòu)過程分成小的迭代,每一次改進都能盡快得到反饋?
重構(gòu)過程中的效果能夠定期展示給業(yè)務(wù)部門或者領(lǐng)導(dǎo)嗎?
你了解當(dāng)前的架構(gòu)設(shè)計嗎?它的設(shè)計初衷和之前的選型方案知道嗎?
你能給架構(gòu)設(shè)定一個基準(zhǔn)狀態(tài)嗎?
業(yè)務(wù)數(shù)據(jù)的需求在重構(gòu)設(shè)計中有體現(xiàn)嗎?
重構(gòu)過程中能否通過實際數(shù)據(jù)來驗證效果?
團隊對技術(shù)債務(wù)有跟蹤和備忘錄機制嗎?還是開發(fā)人員可以隨意的產(chǎn)生債務(wù)?
針對技術(shù)債務(wù)有定期的培訓(xùn)、回顧機制嗎?
重構(gòu)的技術(shù)選型是否有詳實的數(shù)據(jù)和專家評估?
選用的技術(shù)是否有良好的人才積累和足夠的經(jīng)驗支持?你是不是實驗小白鼠?
在技術(shù)選型時,是否至少有兩個方案待評估?有沒有成熟的技術(shù)方案?
架構(gòu)的重構(gòu)是否得到了管理層(特別是最高管理層)的支持?他們是否對重構(gòu)的時間、任務(wù)量有直接的認(rèn)識?
你的重構(gòu)計劃中是否包含了一些可以量化的成果?是否定期向管理層展示這些成果?
是否與業(yè)務(wù)部門就架構(gòu)重構(gòu)所能實現(xiàn)的業(yè)務(wù)目標(biāo)進行過充分的討論和確認(rèn)?
是否對關(guān)鍵業(yè)務(wù)和優(yōu)先重構(gòu)的業(yè)務(wù)進行了確認(rèn)?
當(dāng)非技術(shù)因素影響架構(gòu)的重構(gòu)時,你是否對目標(biāo)做了調(diào)整并告知了利益相關(guān)各方?
你是否準(zhǔn)備以開放而不是抵制的心態(tài)來對待非技術(shù)因素的影響?
團隊成員是否對代碼質(zhì)量有足夠的重視?是否有獎懲措施?
團隊內(nèi)部是否有代碼質(zhì)量的標(biāo)準(zhǔn)文檔和審查流程?

