国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何重構

iamyoung001 / 1673人閱讀

摘要:重構定義重構是對軟件內部結構的調整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性,降低其修改成本。重構節奏小步前進,頻繁測試。

1.重構定義:

重構是對軟件內部結構的調整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性,降低其修改成本。

2.重構節奏:

小步前進,頻繁測試。

3.重構意義: 1.改進軟件設計 2.使軟件更容易被理解 3.幫助找到bug 4.提高編程速度

惡劣的設計會讓你的速度慢下來,你會把時間花在調試上面,無法添加新功能,修改時間越來越長,因為你必須花更多時間來理解系統,尋找重復代碼。

5.獲得更高層次的認識 4.何時重構 1.重復代碼 2.過長函數

有注釋的地方一般需要重構

3.過大的類 4.過多的switch或者if else

switch或者if else過多會導致有任何修改都需要修改switch,而且枚舉如果在多個地方使用就會涉及多個地方修改

5.重構的技巧 1.Extract Method:提煉函數 1.1.重構場景:

方法過長,代碼中注釋過多

1.2.做法

創建一個新函數,根據它的意圖來命名(以【做什么】而不是【怎么做】來命名)。

2.Inline Temp:內聯臨時變量 2.1.重構場景

一個內聯變量被簡單的表達式賦值一次

2.2.做法

取消賦值動作,直接替換為對它賦值的表達式本身

2.3.舉例
 double basePrice = getBasePrice();
 return basePrice;

應該改為

return getBasePrice();
3.Replace Temp with Query 以查詢取代臨時變量 3.1.重構場景

以臨時變量保存某一表達式結果,臨時變量的問題在于,它們是臨時性的,而且只能在所屬的函數內訪問,所以它會驅使你寫出更長的函數,只有這樣你才能訪問到那些臨時變量。如果把臨時變量替換為一個查詢,那么同一個類中的所有函數都可以訪問這個臨時變量。

3.2.做法

將臨時變量使替換為新函數引用

3.3.舉例

重構前

public class Base {
    private int quantity;
    private int itemPrice;
  
    public double getTotalPrice() {
        double basePrice = quantity * itemPrice;
        if(basePrice < 1000) {
            return basePrice * 0.95;
        } else {
            return basePrice * 0.98;
        }
    }
}

第一次:重構后

取消臨時變量->變成函數引用

public class Base {
    private int quantity;
    private int itemPrice;
  
    public double getTotalPrice() {
        if(basePrice() < 1000) {
            return basePrice() * 0.95;
        } else {
            return basePrice() * 0.98;
        }
    }

    public double basePrice() {
        return quantity * itemPrice;
    }
}

再次重構:

獲取結果方法從打折和總額耦合->把打折邏輯獨立出去

public class Base {
    private int quantity;
    private int itemPrice;
    
    public double getTotalPrice() {
        return basePrice() * discountFactor();
    }

    public double basePrice() {
        return quantity * itemPrice;
    }

    public double discountFactor() {
        if(basePrice() > 1000) {
            return 0.95;
        } else {
            return 0.98;
        }
    }
}
4.Introduce Explaining Variable:引入解釋變量

對于復雜查詢通過引入解釋變量來降低復雜性。

怎么區分使用 Extract Method 還是 Introduce Explaining Variable呢?

在一個方法里面臨時變量很多,使用Extract Method變得很困難的時候使用它。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76215.html

相關文章

  • 如何用微服務重構應用程序

    摘要:以下兩個要點將會對任何微服務重構策略產生重大影響。批量替換通過批發更換,您可以一次性重構整個應用程序,直接從單體式轉移到一組微服務器。如果您通過使用破解您的微服務器,那么每個域將圍繞一個用例,或者更常見的,一組相互關聯的用例。 在決定使用微服務之后,為了將微服務付諸實踐,也許你已經開始重構你的應用程序或把重構工作列入了待辦事項清單。 無論是哪種情況,如果這是你第一次重構應用程序,那么您...

    KevinYan 評論0 收藏0
  • 重構:一項常常被忽略的基本功

    摘要:無論如何,單元測試一直是一中非常重要卻常常被忽視的技能。在實踐中,重構的要求是很高的它需要有足夠詳盡的單元測試,需要有持續集成的環境,需要隨時隨地在小步伐地永遠讓代碼處于可工作狀態下去進行改善。 showImg(https://segmentfault.com/img/bVbttWF?w=1000&h=528); 五月初的時候朋友和我說《重構》出第 2 版了,我才興沖沖地下單,花了一個...

    idealcn 評論0 收藏0
  • 如何編寫高質量代碼

    摘要:如果你不能以高標準來要求自己,即使你看再多的如何寫出高質量代碼,懂再多的代碼規范,也是沒有用,最終還是會寫出低質量代碼。建議先從代碼規范開始,熟悉代碼規范,遵循規范寫代碼,直到成為習慣,然后再學習其它方法,最終寫出高質量代碼。 更多文章 什么是高質量代碼? 高質量代碼具有以下幾個特點: 可讀性高 結構清晰 可擴展(方便維護) 代碼風格統一 低復雜性 簡練 編寫高質量代碼主要遵循以下...

    only_do 評論0 收藏0
  • 重構-改善既有代碼的設計(二) --重構原則

    摘要:改進代碼設計的一個重要原則就是消除重復代碼使軟件更容易被理解優秀的代碼能夠讓接收你代碼的付出更少的學習成本。重構更容易找到重構能加深對代碼的理解。可以重構的情況添加功能時可以重構。說明你沒有發現代碼的錯誤。需要重構復審代碼時可以重構。 為何重構 重構不是銀彈,但是幫助你達到以下幾個目的 改進軟件設計 不良的程序需要更多的代碼。而代碼越多,正確的修改就越困難。改進代碼設計的一個重要原則就...

    myshell 評論0 收藏0
  • 如何重構“箭頭型”代碼

    摘要:寫代碼時,代碼的運行中的控制狀態或業務狀態是會讓你的代碼流程變得混亂的一個重要原因,重構箭頭型代碼的一個很重要的工作就是重新梳理和描述這些狀態的變遷關系。重構箭頭型代碼其實是在幫你重新梳理所有的代碼和邏輯,這個過程非常值得為之付出。 所謂箭頭型代碼,基本上來說就是下面這個圖片所示的情況。 showImg(https://segmentfault.com/img/bVbfhps?w=72...

    cloud 評論0 收藏0

發表評論

0條評論

iamyoung001

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<