轉載請註明出處:http://my.oschina.net/u/1474965/blog/299824程序員
重構是一件如影隨行的事數據庫
1、什麼叫作重構編程
重構即不改變現有軟件行爲的基礎上,讓代碼更容易理解和讓代碼更容易修改。spa
通俗來說重構就是整理代碼但又有其好多方法論.net
2、爲何要重構設計
對於今天的工做我瞭解的很充分;對於明天的工做我瞭解的不夠充分,若是我純粹只爲今天工 做,明天我將沒法工做blog
1.改進軟件設計,去除沒必要要的冗餘,保持特有的代碼結構。接口
2.重構讓軟件更容易理解,讓本身更準確的理解別人的代碼開發
3.重構能幫助咱們找到bugget
當咱們重構時,咱們會深刻理解代碼的行爲,並加入本身的理解反饋,從而找出bug
4.提升編程速度
良好的設計是維持軟件快速開發的根本
3、什麼時候重構
重構覆蓋整個程序編寫的全過程,重構的直接緣由每每是幫助本身更好的理解須要修改的代碼
1.添加新功能時
在添加新功能時把代碼結構理清,就能夠從中理解更多的東西
重構是最快捷的途徑,由於重構是一個快速流暢的過程,一旦完成重構新特性的添加就會更快速、流暢。
2.改bug時重構
3.複審代碼時重構
4、重構的難題
1.數據庫
2.修改接口
若是接口改了任何狀況均可能發生,由於接口可能被那些找不到的,即使是可以找到也不能修改的代碼使用。
若是重構改變了已發佈的接口,你必須同時維護新舊兩個接口,讓舊接口調用新接口,並將舊接口標記爲deprecated
5、什麼時候不應重構
1.當軟件運行很不穩定時,就要考慮重寫,由於重構一個不穩定的程序,還不如重寫來的簡單。
未完成的重構像債務同樣,隨着時間的流逝會承受必定的利息的,複雜的代碼形成的維護和擴展困難就是利息,你能夠承受必定的利息,但利息過高就會被壓垮!
我不是一個偉大的程序員,我只是有着一些優秀習慣的好程序員——Kent Beck