選擇CodeRush(DevExpress)還是ReSharper(JetBrains)的問題一直困擾著我,他們都能提高開發效率、加快並簡化軟體開發,並且都提供文法分析、代碼高亮、錯誤提示、進階智能感知、代碼模板等功能。在進行程式碼分析重構外掛程式的選型過程中,我對他們做了一些對比,現在分享給大家,希望對大家有所協助。
CodeRush和ReSharper有什麼相似點?
先來看看CodeRush和ReSharper有什麼相似的地方。他們都是Visual Studio的外掛程式,都能大大提高工作效率和代碼品質。CodeRush和ReSharper主要以三個方式來最佳化代碼(還有其他許多小的最佳化方式,這裡就不一一介紹了):
- 更容易確定程式碼片段是否是你自己編寫的;
- 更容易對代碼進行重構;
- 提供“進階智能感知(Intellisense on steroids)”,使編碼量大大減少。
CodeRush和ReSharper功能點
CodeRush是DevExpress的產品,他們的介紹中是這樣寫的:
對於開發人員來說,CodeRush是一個強大的Visual Studio .NET外掛程式,他利用整合技術,通過促進開發人員和團隊效率來提升開發人員體驗,並協助開發人員以極高的效率建立和維護原始碼。CodeRush擁有Consume-first申明,強大的模板,智能的選擇工具,智能程式碼分析,創新導航以及無與倫比的重構集。
ReSharper是由JetBrains開發的,他的主要特點是:
- 連續的代碼品質分析…
- 即時修複代碼錯誤。
- 40種廣泛的代碼重構解決方案,確保你的程式碼程式庫安全重構。
- 200多種代碼編輯助理。
CodeRush和ReSharper的區別
我個人的體會是,CodeRush除了程式碼分析外掛程式都有的一些準系統外,最特別也是最根本的一點是CodeRush是一個外掛程式平台——你可以為CodeRush開發外掛程式,而不是 IDE 外掛程式。另外值得一提的是CodeRush的代碼模板和代碼重構方面非常優秀,但是相比Resharper,CodeRush的文法高亮和智能感知等功能表現一般。
相比CodeRush,Resharper的各項功能都顯得中規中矩,各項功能都比較平衡,使用起來倒也很方便。Resharper的設定功能沒有CodeRush那麼繁瑣,靈活度也就差了很多。
授權方面,CodeRush只有一種授權方式,Resharper則分為5種授權方式(分為商業授權、個人授權、學術授權…),整體來看CodeRush的價格要優惠一些。
下表是我自己整理的一些CodeRush Vs ReSharper最重要的區別:
| CodeRush贏在以下幾點 |
ReSharper贏在以下幾點 |
| 代碼重構 - 操作更少 |
啟用格式化和重構規則只需要一次(一鍵修複) |
| 更多的重構 |
關鍵詞重構比CodeRush多 |
| 更好地識別Unmanaged 程式碼中的記憶體流失 |
更多的代碼問題報告 |
| 許多程式碼片段 - 編碼量更少,但是前提是要記住捷徑 |
更好的智能感知協助工具功能 |
| 很棒的即時學習,上下文感知視窗 |
可能更集中在C#,對Unmanaged 程式碼相對較弱 |
| 更好的單元測試支援 |
更好的搜尋 |
Resharper vs CodeRush效能對比表
| |
CodeRush |
ReSharper |
| 視覺感受 |
好 |
一般 |
| 重構效果 |
非常好 |
一般 |
| 代碼產生 / 代碼模板 |
非常好 |
一般 |
| 建立模板 |
非常好 |
一般 |
| 運行效率 |
好 |
還行 |
| 程式碼分析 |
還行 |
還行 |
| 資源 |
豐富 |
豐富 |
網友看法
最近用CodeRush做了一個播客項目,不得不感歎他先進的技術,我以前一直在使用Resharper,他的不穩定讓我十分頭疼。大家的看法呢? —— by Thiru Thirunavukarasu
我使用CodeRush一年多了,今年他又更新了幾次版本,現在運行速度快了許多,記憶體佔用也比原來少了。 —— by mkm3
我選擇CodeRush是因為他比R#“輕”了許多,更適合大項目開發。 —— by Tomasz Wisniewski
Resharper不錯的,就是有點占記憶體。 —— by 麥克默菲
總結
CodeRush比Resharper穩定性要好,記憶體佔用少運行效率也要高一些,價格又更便宜。但是Resharper的快速鍵操作非常豐富,若對快速鍵非常熟悉,Resharper的效率也是非常驚人的。