經常使用的6種代碼重構方法幫你提高80%的代碼質量

在過去作了很多代碼走讀,發現了一些代碼質量上比較廣泛的問題,如下是其中的前五名html

  1. 臃腫的類: 類之因此會臃腫,是由於開發者缺少對最基本的編碼原則,即「單一職責原則」(SRP)的理解。這些類每每會變得很臃腫,是因爲不一樣的且在功能上缺乏關聯的方法都放在了相同的類裏面。數組

  2. 長方法: 方法之因此會變得很長主要是有如下幾個緣由:編碼

    • 許多沒有關聯性的、功能複雜的模塊的代碼都放在相同的方法內。這主要是開發者缺少SRP的概念。
    • 多種條件都放在同一個方法內,這在長方法內常常會發生的。這是因爲缺少McCabe代碼複雜度和SRP的概念的比較。
  3. 大量的傳參: 我常常遇到這幾種狀況,一些方法跟另外一些方法進行交互,或者調用另外一些方法的時候傳入大量的參數。這就會出現若是更改了其中一個參數,就得在多個方法內進行更改。spa

  4. 常量值無處不在: 常常會發現開發者(尤爲是新手)會使用一些具備明確含義的常量值(主要是魔鬼數字),但沒有給它們賦予合適的常量變量。這會下降代碼的可讀性和可理解性。code

  5. 模糊的方法名: 許多時候,如下取的方法名會影響代碼的可讀性和可理解性:htm

    • 模糊的不具備任何意義的方法名
    • 技術性的,卻沒有說起相關領域的名稱

  6個處理上面代碼異味的重構方法(手法)對象

  如下是6個能夠用來幫助你解決80%(80-20原則)的代碼質量問題的重構方法,並能幫助你成爲一個更優秀的開發者。flux

  1. 提取類/抽離方法:正如上面提到的,像「臃腫的類」(一個類提供了本該有幾個類提供的功能)這種代碼意味應該將原有類中的方法和屬性移動到適當數目的新類中去。舊類中對應新類的方法和屬性應該被移除。另外,有時候一些類過於臃腫是由於它包含了被其餘類使用本應該是其餘類的成員方法的成員方法。這些方法也應該被遷移到合適的類中。
  2. 提取方法:像上面提到的「過長的方法」這種代碼異味能夠經過從舊方法中提取代碼到一個或多個新方法中消除。
  3. 分離條件:許多時候,一個方法很長是由於包含好幾個分支語句(if-else)。這些分支條件能夠被提取和移動到幾個單獨的方法中。這確實能大大改善代碼可讀性和可理解性。
  4. 引入參數對象/保留全局對象:在我作代碼審查時發現另一個很常見的狀況 - 好幾個參數被傳入方法。問題主要與須要從已有方法中增長或者移除一個方法參數有關。在這種場景,建議將相關方法參數組成一個對象(引入參數對象),讓方法傳遞這些對象而不是每一個單獨的參數。
  5. 用符號常量替換魔法數字:對於有意義的而且處處被使用的字面常量,應該爲它們分配一個命名常量。這能大大加強代碼可讀性和可理解性。
  6. 重命名方法: 正如上面提到的,模糊不清的方法名會影響代碼的可以使用性。這些模糊不清的名稱應該重命名爲有意義的可能與業務術語有關的名稱,來幫助開發者經過業務上下文 更好地理解代碼。這很須要技巧而且要求開發者與業務專家一塊兒協做來理清代碼須要知足的業務需求。有趣的是,這種重構方法看起來彷佛很是容易理解,可是經常 被許多開發者忽視,雖然在Eclipse這種IDE的refactor菜單項中常常出現這一項。

英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Qualityip

相關文章
相關標籤/搜索