概述:沒有人願意生活在一個有臭味的房子裏,臭味的出現說明有什麼不對勁的事情發生了,須要你去找到臭味的來源並消除臭味。若是相似的事情發生在一個App中,例如在一個Ruby on Rails項目中,發現「有臭味」的代碼並重構它是一種很好的鍛鍊。幸運地告訴你,這裏有一些寶貴的經驗能夠幫助你。html
一、Rubycriticgit
Rubycritic能給你項目中的任何單個文件進行深刻分析。每一個文件拿到一個從A(優秀)到F(差)的等級和一個關於複雜度、重複性的結果值。安全
它輸出一個界面方便的html文件來瀏覽代碼和閱讀筆記(複雜的方法,重複的代碼等)。編輯器
tool
工具
二、Rubocop測試
Rubocop是另外一個代碼分析器。它有不少的「Cops」,每一個「Cops」都是一種不一樣的檢測,都能在代碼中體現出來。Cops可以被添加和配置。管理全部選項的最佳方法是使用.rubocop.yml配置文件,就像我所使用的這個(我禁用了一些檢測):插件
1htm
2產品
3it
4
Metrics/LineLength:
Enabled:false
Documentation:
Enabled:false
它也能夠集成到你最喜歡的編輯器中,有許多的編輯器插件,我我的一般使用Sublime Text。
tool
三、Pronto
tool
Pronto對於運行分析比較不一樣的分支請求。你須要安裝你所須要的runners(這裏有pronto runners列表)
1
2
3
$ gem install pronto
$ gem install pronto-reek
$ pronto run
你能夠獲得一個變化分析,或者你能夠去作
1
$ pronto run — index
運行未變化的分析,我一般在承諾以前運行最後一個
四、Reek
tool
Reek是一種「臭味探測工具」,很是便於使用。
1
2
$ gem install reek
$ reek .
該工具備不少的選項,能夠在特定文件夾或文件上運行。Reek包含在Rubycritic中,也能被包含在Pronto中,若是你使用過這些工具,就不須要使用它。
五、Rails Best Practices
Rails Best Practices是一個代碼度量工具,它能檢測你的代碼而且與最佳方法對比,最後反饋一份報告。
它能被添加到pronto中,因此你不須要運行不一樣的工具。
最後要說的是,我推薦使用Code climate
它不像其餘產品僅僅是一個工具,也是一個在線服務,檢測代碼質量,安全性和測試覆蓋率。但它須要你的git帳戶,能對不一樣分支進行檢測。
如今你已經準備好進行重構(由於你的代碼被測試覆蓋了,對嗎?)