壞代碼與重構手法速查表

来源:https://www.cnblogs.com/xulonglong/archive/2020/06/10/huai-dai-ma-yu-zhong-gou-shou-fa-su-cha-biao.html
-Advertisement-
Play Games

壞味道(英文)壞味道(中文)頁碼常用重構Alermative Classes with Different Interfaces異曲同工的類83改變函數聲明(124)搬移函數(198)提煉函數(375)Comments註釋84提煉函數(106)改變函數聲明(124)引入斷言(302)Data Cla... ...


壞味道(英文) 壞味道(中文) 頁碼 常用重構
Alermative Classes with Different Interfaces 異曲同工的類 83 改變函數聲明(124)
搬移函數(198)
提煉函數(375)
Comments 註釋 84 提煉函數(106)
改變函數聲明(124)
引入斷言(302)
Data Class 純數據類 83 封裝記錄(162)
移除設值韓素(331)
搬移函數(198)
提煉函數(106)
拆分階段(154)
Data Clumps 數據泥團 78 提煉類(182)
引入參數對象(140)
保持對象完整(319)
Divergent Change 發散式變化 76 拆分階段(154)
搬移函數(198)
提煉函數(106)
提煉類(182)
Duplicated Code 重覆代碼 72 提煉函數(106)
移動語句(223)
函數上移(350)
Feature Envy 依戀情結 77 搬移函數(198)
提煉函數(106)
Global Data 全局數據 74 封裝變數(132)
Insider Trading 內幕交易 82 搬移函數(198)
搬移欄位(207)
隱藏委托關係(189)
以委托取代子類(381)
以委托取代超類(399)
Large Class 過大的類 82 提取類(182)
提煉超類(375)
以子類取代類型碼(362)
Lazy Element 冗贅的元素 80 內聯函數(115)
內聯類(186)
摺疊繼承體系(380)
Long Function 過長函數 73 提煉函數(106)
以查詢取代臨時變數(178)
引入參數對象(140)
保持對象完整(319)
以命令取代函數(337)
分解條件表達式(260)
以多態取代條件表達式(272)
拆分迴圈(227)
Long Parameter List 過長參數列 74 以查詢取代臨時變數(178)
保持對象完整(319)
引入參數對象(140)
移除標記參數(314)
函數組合成類(144)
Loops 迴圈語句 79 以管道取代迴圈(231)
Message Chains 過長的消息鏈 81 隱藏委托關係(189)
提煉函數(106)
搬移函數(198)
Middie Man 中間人 81 移除中間人(192)
內聯函數(115)
以委托取代超類(399)
以委托取代子類(381)
Mutable Data 可變數據 75 封裝變數(132)
拆分變數(240)
移動語句(223)
提煉函數(106)
將查詢函數和修改函數分離(306)
移除設值函數(331)
以查詢取代派生變數(248)
函數組合成類(144)
函數組合成變換(149)
將引用對象改為值對象(252)
Mysterious Name 神秘命名 72 改變函數聲明(124)
函數改名(137)
欄位改名(244)
Primitive Obsession 基本類型偏執 78 以對象取代基本類型(174)
以子類取代類型碼(362)
以多態取代條件表達式(272)
提煉類(182)
引入參數對象(140)
Refunsed Bequest 被拒絕的遺贈 83 函數下移(359)
欄位下移(361)
以委托取代子類(381)
以委托取代超類(399)
Repeated Switches 重覆的switch 79 以多態取代條件表達式(272)
Shotgun Surgery 霰彈式修改 76 搬移函數(198)
搬移欄位(207)
函數組合成類(144)
函數組合成變換(149)
拆分階段(154)
函數內聯(115)
內聯類(186)
Speculative Generality 誇誇其談通用性 80 摺疊繼承體系(380)
函數內聯(115)
內聯類(186)
改變函數聲明(124)
移除死代碼(237)
Temporary Field 臨時欄位 80 提煉類(182)
搬移函數198
引入特例(192)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 根據本人工作遇到的一些情況,總結如下: 1.)安裝包的最低版本要求高於待安裝的手機的android版本。2.)目標手機上已經存在相同包名的app,且簽名不一樣.3.)android studio下打包輸出app時, 只選擇了v2, 並且遇到的手機是低版本的。會出現安裝失敗.4.)目標手機可用記憶體太低 ...
  • .android文件夾主要是用來存放模擬器的,是占用空間最大的一個,如果你沒有使用它的模擬器,可以直接把這個文件夾刪除。因為我建立了兩個x86的模擬器,吃掉了我20G的空間。果斷搬走。.gradle這個目錄主要是項目編譯時所用的,更改比較簡單,AndroidStudio 有給我們留下介面。.Andr... ...
  • 插件 flutter-carousel-slider A flutter carousel widget, support infinite scroll, and custom child widget. code-builder A fluent API for generating valid ...
  • Js--字元串拼接/連接 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝! 說明 在開發的過程中很容易遇到字元串連接的問題,下麵列舉三種方法 使用加號運算符 連接字元串最簡便的方法是使用加號運算符。 使用加號運算符連接兩個字元串 ...
  • 本文只是複習HTML筆記 html 骨架: DTD:文檔類型定義,規定了使用哪個版本的html規範 html 標簽:雙標簽,表示整個網頁 head 標簽: 配置HTML頁面 title: 網頁標題 meta :設置字元集 charset body : 書寫標簽組成的網頁 語法: 標簽之間對空格,縮進 ...
  • 前言 就在前段時間,vue官方發佈了3.0.0-beta.1 版本,趁著五一假期有時間,就把之前的一個電商商城的項目,用最新的Composition API拿來改造一下! 👉GitHub地址請訪問🔗:github.com/GitHubGanKa… 項目介紹 vue-jd-h5是一個電商H5頁面前 ...
  • 相信只要你去面試vue,都會被問到vue的雙向數據綁定,你要是就說個mvvm就是視圖模型模型視圖,只要數據改變視圖也會同時更新!那你離被pass就不遠了! 視頻已錄製,地址(www.bilibili.com/video/BV1qJ…) 幾種實現雙向綁定的做法 目前幾種主流的mvc(vm)框架都實現了 ...
  • 前言 之前學習 vue 的時候,一直沒刨根問底過。在看到網上這類文章比較多,參差不齊的質量有時候看的一頭霧水。當然也有不錯的文章,但是終究是別人的理解。於是寫一篇關於自己的理解記錄下來,親身實踐才能收穫更多! 初階:響應式原理 在說明之前,我們先瞭解一個 Object.defineProperty( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...