成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

6個重構方法可幫你提升80%的代碼質量

開發 前端
在過去做了不少代碼走讀,發現了一些代碼質量上比較普遍的問題,以下是其中的前五名

在過去做了不少代碼走讀,發現了一些代碼質量上比較普遍的問題,以下是其中的前五名

  1. 臃腫的類: 類之所以會臃腫,是因為開發者缺乏對最基本的編碼原則,即“單一職責原則”(SRP)的理解。這些類往往會變得很臃腫,是由于不同的且在功能上缺少關聯的方法都放在了相同的類里面。

  2. 長方法: 方法之所以會變得很長主要是有以下幾個原因:

    1. 許多沒有關聯性的、功能復雜的模塊的代碼都放在相同的方法內。這主要是開發者缺乏SRP的概念。

    2. 多種條件都放在同一個方法內,這在長方法內經常會發生的。這是由于缺乏McCabe代碼復雜度和SRP的概念的比較。

  3. 大量的傳參: 我經常遇到這幾種情況,一些方法跟另一些方法進行交互,或者調用另一些方法的時候傳入大量的參數。這就會出現如果更改了其中一個參數,就得在多個方法內進行更改。

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

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

    1. 模糊的不具有任何意義的方法名

    2. 技術性的,卻沒有提及相關領域的名稱

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

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

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

原文鏈接:http://vitalflux.com/top-6-refactoring-patterns-to-help-you-score-80-in-code-quality/

譯文鏈接:http://www.oschina.net/translate/top-6-refactoring-patterns-to-help-you-score-80-in-code-quality

責任編輯:陳四芳 來源: 開源中國編譯
相關推薦

2024-08-06 12:35:42

C#代碼重構

2017-01-20 09:45:20

JavaScript代碼質量

2025-02-19 12:00:00

JavaScript代碼數組方法

2022-03-25 09:22:42

代碼開發

2018-07-26 06:57:33

2025-03-04 13:00:00

JavaScrip代碼語言

2021-08-19 15:19:16

代碼開發模型

2015-08-11 09:39:25

重構提高代碼質量

2021-02-08 23:51:31

開源工具代碼

2025-06-10 01:11:00

2011-08-16 09:47:58

編程

2020-08-25 14:14:06

CIOIT運營數字化轉型

2016-02-15 09:25:00

R語言運算效率大數據

2021-08-01 22:35:16

Vscode開發編輯器

2014-08-11 12:54:27

構建模塊代碼審查編程

2024-05-14 15:28:09

Python類型提示開發

2013-09-22 10:38:46

代碼優化經驗

2024-07-08 09:46:19

2014-02-14 09:16:51

JavaScript工具

2024-10-30 08:08:45

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天干夜夜操 | 欧美日一区二区 | 欧美视频三区 | 成人性视频免费网站 | 国产精品免费大片 | 日本三级全黄三级三级三级口周 | 中文字幕欧美日韩 | 在线久草| 国产高清久久 | 精品国产一区二区三区性色 | www.久草.com| 日韩一区二区免费视频 | 97精品国产一区二区三区 | 免费一级片 | 日韩一区二区三区视频 | 91视频久久 | 久久r精品| 91极品尤物在线播放国产 | 成人免费看电影 | 国产色片 | 一区二区三区中文字幕 | 免费视频一区二区 | 9久久婷婷国产综合精品性色 | 成人小视频在线观看 | 亚洲精品乱码久久久久久黑人 | 婷婷99| 欧美日韩国产综合在线 | 天堂网中文 | 一区二区三区四区免费视频 | 污片在线观看 | 色综合久久天天综合网 | 午夜激情视频 | 欧美乱大交xxxxx另类电影 | 干一干操一操 | 91日韩| 中文字幕免费中文 | 日本午夜精品 | 亚洲最大成人综合 | 国产一区免费 | 欧美日韩综合一区 | 国产美女精品视频 |