不要輕易重構(gòu)

在項目維護(hù)的過程中羽圃,由于工程師水平的參差不齊乾胶,很多需求時間緊、任務(wù)重,或又因前幾任工程師離職沒做好交接识窿,導(dǎo)致了大量的可讀性差斩郎、效率低下的代碼,這時候喻频,在職的工程師最想做的恐怕就是重構(gòu)代碼缩宜,將那些垃圾代碼舍棄,按照自己良好的設(shè)計重新實(shí)現(xiàn)一遍半抱。

在工程師看來脓恕,重構(gòu)之后有非常多的好處:

  1. 代碼更簡潔,可讀性窿侈、可維護(hù)性更強(qiáng)
  2. 實(shí)現(xiàn)新的需求效率更高
  3. 新人的學(xué)習(xí)成本更低

重構(gòu)之后丟棄了過往的累贅,往往也會丟棄了過往的經(jīng)驗(yàn)秋茫。盡管過去的代碼十分丑陋史简,但它們確確實(shí)實(shí)可以正常地運(yùn)轉(zhuǎn)。如果要重構(gòu)肛著,能保證新的代碼不會像過去團(tuán)隊的代碼一樣圆兵,慢慢變丑陋嗎?依然會面臨同樣的風(fēng)險枢贿,而且殉农,過去團(tuán)隊已經(jīng)付出的時間成本,還要再次付出一遍局荚。

我所負(fù)責(zé)的項目就經(jīng)歷過這樣一次重構(gòu)超凳,帶來好處的同時也帶來了很多傷害,主要有以下幾點(diǎn):

1. 用戶很長時間看不到產(chǎn)品的變化耀态,容易對產(chǎn)品失去信心

按照原本的開發(fā)計劃轮傍,團(tuán)隊每周會響應(yīng)客戶反饋的 2 個改進(jìn)意見,修正 4+ 個 bug首装,約兩個月推出一個重點(diǎn)功能...用戶每周都能感受到產(chǎn)品在改進(jìn)创夜,這會讓用戶更加喜愛你的產(chǎn)品,重構(gòu)意味著舍棄了正常進(jìn)度的產(chǎn)品更新仙逻,而需要花大量的時間來重新組織代碼驰吓,而這所有改進(jìn),用戶完全感知不到系奉,一旦在某些功能上落后于競爭對手檬贰,可能就直接導(dǎo)致用戶流失。

2. 以前遇到的坑基本會再踩一遍

工程師往往會低估重構(gòu)的難度和所要消耗的時間喜最,以前遇到的坑基本會再踩一遍偎蘸。比如,在過去的版本中,導(dǎo)出的數(shù)據(jù)是帶有公司 logo 和精美樣式的 EXCEL 文件迷雪,重構(gòu)時就沒有考慮到這一點(diǎn)限书,結(jié)果又花了大量的時間去調(diào)整導(dǎo)出文件的樣式。

為實(shí)現(xiàn)某個特殊需求章咧,舊版寫了很多丑陋的代碼倦西,在重構(gòu)的時候,依然沒有想到優(yōu)雅的辦法赁严,但是用戶已經(jīng)嚴(yán)重依賴這個功能扰柠,又必須實(shí)現(xiàn),后來重構(gòu)的版本依然通過非常別扭的方案實(shí)現(xiàn)這個需求疼约。

3. 技術(shù)上沒有包袱了卤档,但產(chǎn)品上的包袱更重

如果重構(gòu)涉及到前端用戶看到的部分,則面臨的壓力會更大程剥。在過去的版本中劝枣,用戶體驗(yàn)被打磨的非常細(xì)致,甚至很多你想不到的地方都被用戶熟練掌握织鲸,一旦交互上有稍微大的改動舔腾,就會影響到他們的正常使用。

重構(gòu)的版本還很難使用敏捷的方式快速迭代搂擦,一旦推出了新版的最小可行化版本稳诚,用戶會吐槽比舊版差遠(yuǎn)了,為啥要用這個瀑踢,如果要測試成熟再推出扳还,用戶等待的時間則會更加漫長。

4. 競爭對手利用這段時間可能已經(jīng)走很遠(yuǎn)了

在重構(gòu)的這段時間丘损,你的競爭對手在馬不停蹄的開發(fā)新的功能普办,拓展新的客戶,而自己的產(chǎn)品對于客戶來說卻停滯不前徘钥。在重構(gòu)之前衔蹲,一定不能只從工程角度考慮問題,還要想想公司的生意呈础。

如果必須要重構(gòu)舆驶,如何做?

首先而钞,在日常的項目管理中比原,為開發(fā)團(tuán)隊預(yù)留20%的自主時間诬像,讓他們自由支配。開發(fā)團(tuán)隊可以利用這些時間重寫代碼、完善架構(gòu)囚痴、重構(gòu)代碼庫中有缺陷的部分,避免“需要停下來重寫代碼”的情形發(fā)生。如果現(xiàn)有代碼已難以維護(hù),這里給出一點(diǎn)建議供參考:

  1. 針對重構(gòu)和日常需求制訂切實(shí)可行的計劃和時間表蟋定。通常,有經(jīng)驗(yàn)的開發(fā)團(tuán)隊估計的開發(fā)時間八九不離十草添,但是多數(shù)團(tuán)隊沒有重構(gòu)的實(shí)際經(jīng)驗(yàn)驶兜,估計往往會過于樂觀。這時必須仔細(xì)檢查每處細(xì)節(jié)远寸,確保計劃切實(shí)可行抄淑。
  2. 把重構(gòu)目標(biāo)拆解,實(shí)現(xiàn)遞增修改驰后,同時要花精力保持產(chǎn)品迭代肆资,讓用戶感受到產(chǎn)品的改進(jìn),哪怕會因此把3個月的工作時間延長至半年灶芝。重寫代碼時迅耘,保證讓用戶看到功能的改進(jìn)——即使會占用少則25%,多則50%的開發(fā)資源——對保持產(chǎn)品的市場占有率至關(guān)重要监署。
  3. 由于開發(fā)用戶可見功能的資源有限,必須謹(jǐn)慎選擇正確的產(chǎn)品特性纽哥,確保產(chǎn)品定義的正確性钠乏。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市春塌,隨后出現(xiàn)的幾起案子晓避,更是在濱河造成了極大的恐慌,老刑警劉巖只壳,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俏拱,死亡現(xiàn)場離奇詭異,居然都是意外死亡吼句,警方通過查閱死者的電腦和手機(jī)锅必,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕艳,“玉大人搞隐,你說我怎么就攤上這事≡短拢” “怎么了劣纲?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谁鳍。 經(jīng)常有香客問我癞季,道長劫瞳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任绷柒,我火速辦了婚禮志于,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辉巡。我一直安慰自己恨憎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布郊楣。 她就那樣靜靜地躺著憔恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪净蚤。 梳的紋絲不亂的頭發(fā)上钥组,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音今瀑,去河邊找鬼程梦。 笑死,一個胖子當(dāng)著我的面吹牛橘荠,可吹牛的內(nèi)容都是我干的屿附。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哥童,長吁一口氣:“原來是場噩夢啊……” “哼挺份!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贮懈,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤匀泊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后朵你,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體各聘,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年抡医,在試婚紗的時候發(fā)現(xiàn)自己被綠了躲因。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡魂拦,死狀恐怖毛仪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芯勘,我是刑警寧澤箱靴,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站荷愕,受9級特大地震影響衡怀,放射性物質(zhì)發(fā)生泄漏棍矛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一抛杨、第九天 我趴在偏房一處隱蔽的房頂上張望够委。 院中可真熱鬧,春花似錦怖现、人聲如沸茁帽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潘拨。三九已至,卻和暖如春饶号,著一層夾襖步出監(jiān)牢的瞬間铁追,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工茫船, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琅束,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓算谈,卻偏偏與公主長得像涩禀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子然眼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容