最近需要重構乙個專案的**。純**2.5w行。
質量就不多說了,看到這樣的太多了。
就是開始的時候不知道怎麼下手。
本來想通過大的架構的改變直接重構,但。。。風險太大。。。
比如,前台使用state模式進行重構,設計的業務有10幾個,一來時間不允許,二來改完可能測試不到。
於是,找了乙個統計**圈複雜度、方法行數等質量引數的工具,挨個進行修改。。。按照業務邏輯提出小方法---把功能類似的**放到單獨的類中--這些都是工具做的,所以不存在什麼風險。
經過幾個類的修改之後,初步顯現出一些效果:
1.每個類的行數變少了,職責單一了,比如乙個2000行的類,經過各種提方法,抽出重複**,變為了2個400行左右的類。
2.由於1,多人的協作衝突減少了--比如兩個人做兩個功能,需要改同乙個類,修改後,兩人可以改自己需要的類不需要擔心**提交衝突了。
3.修改後的類,很容易就發現可以使用一些設計模式進行重構---簡單了、安全了。
看,簡單的做一些重構就可以收穫這麼多,而且時間消耗也不到,可以說價效比很高。
重構不是革命、不需要轟轟烈烈。
只要細心、耐心。
最好是經常重構,以免技術債務越來越多----相應的利息也會更多,這點任何有經驗的開發人員應該都有深刻的體會。
所以,沒事的時候,多跑跑checkstyle、findbugs,一些質量檢查的小工具,可能看起來改了效果不大,但積累起來的效果是不可估量的。
養成好的習慣吧,重構不是什麼有技術含量的事,起碼對於國內大多數**來說。
當小重構到一定程度的時候----基本沒有重複**、類和方法職責單
一、沒有編譯器警告。---你會發現大的重構是那麼自然,那麼的水到渠成。
重構只是個體力活而已。
ps:重構需要自動測試來支援。如果實在沒有,手工測試吧。。。更是體力活。。。
個體重構 將重構應用到生活中
bryan beecham在agile testing days 2015敏捷測試大會上以個體重構作主旨發言。infoq就個體重構如何幫助我們來改善我們的生活,它與 重構的關係,為什麼他認為健康飲食很重要,敏捷團隊如何從中受益以及人們可以從 找更多關於自我提公升和個體成長的資訊這幾個問題來採訪他。i...
個體重構 將重構應用到生活中
bryan beecham在agile testing days 2015敏捷測試大會上以個體重構作主旨發言。infoq就個體重構如何幫助我們來改善我們的生活,它與 重構的關係,為什麼他認為健康飲食很重要,敏捷團隊如何從中受益以及人們可以從 找更多關於自我提公升和個體成長的資訊這幾個問題來採訪他。i...
個體重構 將重構應用到生活中
bryan beecham在agile testing days 2015敏捷測試大會上以個體重構作主旨發言。infoq就個體重構如何幫助我們來改善我們的生活,它與 重構的關係,為什麼他認為健康飲食很重要,敏捷團隊如何從中受益以及人們可以從 找更多關於自我提公升和個體成長的資訊這幾個問題來採訪他。i...