重構軟體,就是重組現有的原始碼,讓其更加易讀、高效和可維護,這也是所有開發人員時不時都會做的事情。然而,最新研發發現,重構並不會給軟體程式碼質量帶來多大的提升。
研究員 Sri Lanka 做了項調查,目的是為了測試常用的重構技術是否會改進內外部軟體質量。最近,他把調查結果釋出到了國際週刊《Software Engineering & Applications》上,標題為:An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality。
研究人員選用了一個小規模的應用程式(約 4500 行 C# 程式碼),由 Kelaniya 大學的學術研究員來排程事件和進行線上文件的評估。研究人員把十種常見的重構技術都運用到程式碼中(例如:以子類取代型別碼、Replace Conditional with Polymorphism 等)。對軟體內外部程式碼都進行了重構,並且與未重構的程式碼進行了評測和評估,得出的主要結論有:
- 重構並未讓程式碼易於解析
- 重構並未讓程式碼易於改變
- 重構並未讓程式碼執行加快
- 重構並未提高資源利用率
與此同時,通過調查發現,重構的程式碼更加易於維護。
重構程式碼的可維護性指數評分要比沒有重構的程式碼高出4%,但作者認為,這只是一個綜合指標。然而,使用其他內部質量指標,重構程式碼的執行(深度繼承)結果與未重構程式碼一樣,而就迴圈複雜度、類耦合、程式碼行這幾方面,重構程式碼的執行效果並沒有未重構的好。
這份調查結果僅僅是基於小型的應用程式和修復固定的重構技術,所以,作者承認其會得到部分人的質疑。當然,對於不喜歡重構的人來說,這份結果給了它們一個不重構的理由。
最後
通常,只要一提到重構,大家腦海首先蹦出的是重構所帶來的好處,然而當大家面對需要重構的程式碼時,表情肯定是難過甚至絕望的。那麼,在花費了時間和精力後,重構後的程式碼是否能有想象中的那麼高效、易讀、可維護呢?有過重構經驗的程式設計師不妨來跟我們分享一下心得體會吧。
來自:部落格園
相關閱讀
評論(1)