程式碼重構--大話重構

00潤物無聲00發表於2016-05-22

    專案組推薦了一本書《大話重構》,看完了第一部分之後,結合自己以往重構的認知和經歷,這本書給了我很實際的指導。

重新認識重構定義,重構是一項愉快的活動

    重構:系統重構是一套嚴謹而安全的過程方法,它通過一系列行之有效的方法與措施,保證軟體在優化的同時,不會引入新的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;
        }
    }


    通過增加註釋,調整順序,重新命名變數,分段,抽取方法,抽取類,抽取介面。



這是一個很棒的重構過程;








相關文章