why
? ??對于項目來言,重構可以保持代碼質(zhì)量持續(xù)處于一個可控狀態(tài),不至于腐化到無可救藥的地步。對于個人而言,重構非常鍛煉一個人的代碼能力,并且是一件非常有成就感的事情。它是我們學習的經(jīng)典設計思想、原則、模式、編程規(guī)范等理論知識的練兵場。
? ??重構實際上是對我們學習的經(jīng)典設計思想、設計原則、設計模式、編程規(guī)范的一種應用。重構實際上就是將這些理論知識,應用到實踐的一個很好的場景,能夠鍛煉我們熟練使用這些理論知識的能力。除此之外,平時堆砌業(yè)務邏輯,你可能總覺得沒啥成長,而將一個比較爛的代碼重構成一個比較好的代碼,會讓你很有成就感。
? ??重構能力也是衡量一個工程師代碼能力的有效手段。所謂“初級工程師在維護代碼,高級工程師在設計代碼,資深工程師在重構代碼”,這句話的意思是說,初級工程師在已有代碼框架下修改 bug、修改添加功能代碼;高級工程師從零開始設計代碼結構、搭建代碼框架;而資深工程師為代碼質(zhì)量負責,需要發(fā)覺代碼存在的問題,重構代碼,時刻保證代碼質(zhì)量處于一個可控的狀態(tài)(當然這里的初級、高級、資深只是一個相對概念,并不是一個確定的職級)。
what 重構什么
? ??按照重構的規(guī)模,我們可以將重構大致分為大規(guī)模高層次的重構和小規(guī)模低層次的重構。大規(guī)模高層次重構包括對代碼分層、模塊化、解耦、梳理類之間的交互關系、抽象復用組件等等。這部分工作利用的更多的是比較抽象、比較頂層的設計思想、原則、模式。小規(guī)模低層次的重構包括規(guī)范命名、注釋、修正函數(shù)參數(shù)過多、消除超大類、提取重復代碼等等編程細節(jié)問題,主要是針對類、函數(shù)級別的重構。小規(guī)模低層次的重構更多的是利用編碼規(guī)范這一理論知識。
when
? ??我反復強調(diào),我們一定要建立持續(xù)重構意識,把重構作為開發(fā)必不可少的部分,融入到日常開發(fā)中,而不是等到代碼出現(xiàn)很大問題的時候,再大刀闊斧地重構。
how
? ??大規(guī)模高層次的重構難度比較大,需要組織、有計劃地進行,分階段地小步快跑,時刻讓代碼處于一個可運行的狀態(tài)。而小規(guī)模低層次的重構,因為影響范圍小,改動耗時短,所以,只要你愿意并且有時間,隨時隨地都可以去做。