程式碼重構--大話重構
專案組推薦了一本書《大話重構》,看完了第一部分之後,結合自己以往重構的認知和經歷,這本書給了我很實際的指導。
重新認識重構定義,重構是一項愉快的活動
重構:系統重構是一套嚴謹而安全的過程方法,它通過一系列行之有效的方法與措施,保證軟體在優化的同時,不會引入新的Bug,保證軟體改造的質量。
測試,是重構的保險索
重構的程式,必須不斷的經過測試,保證不改變系統的外部行為,即對外顯示的資料;
大布局和小步快跑
大布局:全面整理系統需求,分析系統功能,再全面設計系統,開發,測試。
小步快跑:採用一個一個連續不斷地小設計,在大規劃的前提下,著眼當前設計實現。小步快跑體現了敏捷開發的特點:簡單,快速反饋(測試)。
重構應避免大設計,儘量採用“小步快跑”的設計模式;
小步快跑
這種模式類似於開車,不斷地微調方向盤的方向,清楚的指導自己的目的地,再自己航向上,不斷地調整。這樣的好處,能夠及早的發現錯誤,及時糾正。不斷地實現小設計,最終完成重構。
越近期的計劃越細,越遠期的規劃越粗。
重構是一系列的等量變換
系統重構要求對程式碼的修改,不能改變軟體的外部行為,因此係統重構的所有方法,都是一種程式碼的等量變換。像解答數學題一樣,使用不同的方式解出相同的答案。
演變過程
public class HelloWord
{
public String sayHello(Date now, String user)
{
Calendar c;
int h;
String s = null;
c = Calendar.getInstance();
c.setTime(now);
h = c.get(Calendar.HOUR_OF_DAY);
if(h>=6 && h<12){
s = "Good morning!";
}
else if (h >= 12 && h < 19)
{
s = "Good afternoon!";
}
else {
s = "Good night!";
}
s = "Hi," + user + "." + s;
return s;
}
}
通過增加註釋,調整順序,重新命名變數,分段,抽取方法,抽取類,抽取介面。
這是一個很棒的重構過程;
相關文章
- 程式碼重構之法——方法重構分析
- 程式碼重構
- “硬核”程式碼重構
- 重構 PHP 程式碼PHP
- PHP程式碼重構PHP
- 程式碼重構(四)
- 程式碼重構:類重構的 8 個小技巧
- .NET重構—單元測試的程式碼重構
- 程式碼重構技巧(二)
- 談談程式碼重構
- 【讀程式碼重構有感】
- 重構:程式碼異味
- 重構改善既有的程式碼設計(重構原則)
- 程式碼重構:函式重構的 7 個小技巧函式
- 重構遺留程式碼(1):金牌大師
- 程式碼重構與單元測試——“提取方法”重構(三)
- 程式碼重構那些事兒
- 重構你的javascript程式碼JavaScript
- 重構 - 程式碼優化技巧優化
- 日記9(程式碼重構)
- 重構 - 程式碼整潔之道
- 重構之提煉程式碼
- 重構程式碼(應如寫詩)
- 程式碼的壞味道和重構
- 記一次程式碼重構
- 高效重構 C++ 程式碼(下)C++
- 高效重構 C++ 程式碼(上)C++
- 高效重構 C++ 程式碼(中)C++
- 重構出更加swifty的程式碼Swift
- 程式碼重構-業務中臺化
- 架構重構--改善既有程式碼的設計架構
- .NET重構(型別碼的設計、重構方法)型別
- 還重構?就你那程式碼只能鏟了重寫!
- 程式碼重構與單元測試——重構1的單元測試(四)
- 重構:改善既有程式碼的設計
- CSS程式碼重構與優化之路CSS優化
- 程式碼重構方向原則指導
- 重構-改善既有程式碼的設計