亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS中可以改善代碼的5種重構(gòu)技術(shù)分享

 更新時間:2023年06月09日 09:51:20   作者:王大冶  
代碼重構(gòu)涉及在不改變其外部功能的情況下對現(xiàn)有代碼進行改進,這是編程的核心部分之一,所以下面我們將研究一些技巧,這些技巧可以幫助我們以更好的方式重構(gòu)代碼,希望對大家有所幫助

編寫代碼很有趣,我們非常喜歡它。直到一個錯誤突然出現(xiàn),需要相當長的時間來解決它。有時,錯誤并不明顯,因為代碼按預期運行,但在生產(chǎn)中可能會導致錯誤。可能會有性能和可訪問性方面的錯誤,這會導致用戶體驗不佳。通過重構(gòu)代碼可以減少這類錯誤。

代碼重構(gòu)涉及在不改變其外部功能的情況下對現(xiàn)有代碼進行改進。這是編程的核心部分之一,不能忽視,否則,我們將無法實現(xiàn)代碼的更好版本。代碼重構(gòu)可以提高代碼的可讀性、可維護性和可擴展性。它還旨在提高性能和提高開發(fā)人員的生產(chǎn)力。

今天,我們將研究一些技巧,這些技巧可以幫助我們以更好的方式重構(gòu)代碼。

如何整合重構(gòu)

在尋找改進重構(gòu)的技巧之前,讓我們看看如何將代碼重構(gòu)集成到你的編碼過程中??梢允褂靡韵陆ㄗh來實現(xiàn)這個目的:

  • 專門分配時間來重構(gòu)代碼
  • 將較大的重構(gòu)問題分解為較小的問題以進行管理
  • 嘗試讓整個團隊參與重構(gòu)過程
  • 使用自動化工具,可以幫助您查找常見的重構(gòu)錯誤

提取方法

這種方法涉及將代碼塊轉(zhuǎn)換為單獨的方法/函數(shù)。這樣做是為了提高代碼的結(jié)構(gòu)和可讀性。通過提取較長且復雜的代碼塊,將其變成更小且易于管理的方法來實現(xiàn)這一目標。

要使用這種技術(shù),我們首先需要找到一個執(zhí)行特定任務的代碼塊,這些任務有點復雜。在識別之后,我們提取代碼并將其放入一個新方法中。此外,確保為該方法起一個有意義的名稱?,F(xiàn)在,在我們需要代碼的地方調(diào)用它們。

重構(gòu)前

function calculateInvoiceTotal(items) {
  let total = 0;
  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    if (!item.quantity || !item.price) {
      console.error('Invalid item', item);
      continue;
    }
    const itemTotal = item.quantity * item.price;
    total += itemTotal;
  }
  return total;
}

重構(gòu)后

function calculateInvoiceTotal(items) {
  let total = 0;
  for (let i = 0; i < items.length; i++) {
    const item = items[i];
    const itemTotal = calculateItemTotal(item);
    total += itemTotal;
  }
  return total;
}
function calculateItemTotal(item) {
  if (!item.quantity || !item.price) {
    console.error('Invalid item', item);
    return 0;
  }
  return item.quantity * item.price;
}

可以看到我們?nèi)绾螌⒃?for 循環(huán)內(nèi)運行的復雜代碼轉(zhuǎn)換為另一種方法以簡化和提高可讀性。

用符號常量替換魔術(shù)數(shù)字

這個代碼重構(gòu)是為了編寫更清晰、更易讀的代碼。魔術(shù)數(shù)字只是指硬編碼的數(shù)值。編寫硬編碼的數(shù)字會給其他人帶來困惑,因為它們的目的沒有定義。將硬編碼的值轉(zhuǎn)換為具有有意義名稱的變量肯定有助于其他人理解它。此外,還可以為其添加注釋以進一步解釋。這也有助于調(diào)試和降低將來出現(xiàn)錯誤的風險。

重構(gòu)前

if (temperature > 32) {
  // Do something if temperature is above freezing
}

重構(gòu)后

const int FREEZING_POINT = 32;
if (temperature > FREEZING_POINT) {
   // Do something if temperature is above freezing
}

合并重復代碼

復制或相同的代碼可能會出現(xiàn)在來自不同位置的代碼中。這個代碼不需要完全相同,但它可以執(zhí)行類似的任務或從原始代碼稍微擴展一點。重復的代碼可能導致多種問題,包括增加維護成本、難以對代碼庫進行更改以及引入錯誤的風險更高。

在重構(gòu)代碼時,必須注意查找重復的代碼。在找到這樣的代碼時,處理這個問題的一種方法是將這些代碼轉(zhuǎn)換為單個可重用的函數(shù)/方法。

重構(gòu)前

function calculateTotal(numbers) {
  let total = 0;
  for (let i = 0; i < numbers.length; i++) {
    total += numbers[i];
  }
  return total;
}
function calculateAverage(numbers) {
  let total = 0;
  for (let i = 0; i < numbers.length; i++) {
    total += numbers[i];
  }
  const average = total / numbers.length;
  return average;
}

重構(gòu)后

function calculateSum(numbers) {
  let total = 0;
  for (let i = 0; i < numbers.length; i++) {
    total += numbers[i];
  }
  return total;
}
function calculateTotal(numbers) {
  return calculateSum(numbers);
}
function calculateAverage(numbers) {
  const total = calculateSum(numbers);
  const average = total / numbers.length;
  return average;
}

在之前的代碼示例中,我們在求和并再次求和以找到平均值。在之后,我們用提供給它們兩者之和的函數(shù)替換了這個過程。

簡化方法

當你尋找要優(yōu)化的方法/功能時,它與識別非常相似??梢詾檫壿嬜龊喕姆椒ɑ蚴蛊淇勺x和清潔。此技術(shù)可以幫助你減少代碼行。

此方法可以分解為較小的代碼塊,可以在函數(shù)中找到它們以進行優(yōu)化。以下是這些代碼塊:

  • 刪除不必要的變量和表達式:可能有一些用于調(diào)試的變量或表達式被遺漏,例如JavaScript中的console.log。
  • 使用內(nèi)置功能:有時使用庫或語言的內(nèi)置功能會更好。因為可以用更少的代碼實現(xiàn)相同的功能。
  • 簡化條件語句:如果一個方法有復雜的條件語句,請考慮通過合并條件或使用三元運算符來簡化它們。

使用懶加載

這是一種只在需要時加載對象的技術(shù)。這可以通過減少內(nèi)存使用量來提高應用程序的性能。這將加快應用程序的加載速度。

這種技術(shù)在Web開發(fā)中非常流行。尤其是在像React這樣的JavaScript框架中,可以通過懶加載導入不同的組件。這也可以根據(jù)需要加載圖像。

重構(gòu)前

import React from 'react';
import MyComponent from './MyComponent';
const App = () => {
  return (
    <div>
      <h1>My App</h1>
      <MyComponent />
    </div>
  );
}
export default App;

重構(gòu)后

import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
const App = () => {
  return (
    <div>
      <h1>My App</h1>
      <Suspense fallback={<div>Loading...</div>}>
        <MyComponent />
      </Suspense>
    </div>
  );
}
export default App;

在更新版本中,我們使用 lazy 功能異步導入 MyComponent 組件。這意味著該組件僅在實際需要時才加載,從而提高了我們應用程序的整體性能。我們還使用 Suspense 組件在加載組件時顯示回退 UI。

總結(jié)

重構(gòu)是任何希望提高代碼質(zhì)量、性能和可維護性的開發(fā)者的基本實踐。通過花時間分析和優(yōu)化代碼,可以消除冗余,降低復雜性,并創(chuàng)建更高效且可擴展的應用程序。

通過不斷審查和改進你的代碼,你可以創(chuàng)建一個更強大、更具彈性的應用程序。希望這篇文章能幫助您了解一些重構(gòu)技巧。

到此這篇關(guān)于JS中可以改善代碼的5種重構(gòu)技術(shù)分享的文章就介紹到這了,更多相關(guān)JS重構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javasciprt下jquery函數(shù)$.post執(zhí)行無響應的解決方法

    javasciprt下jquery函數(shù)$.post執(zhí)行無響應的解決方法

    這篇文章主要介紹了javasciprt下jquery函數(shù)$.post執(zhí)行無響應的解決方法,需要的朋友可以參考下
    2014-03-03
  • JavaScript實現(xiàn)平滑滾動效果

    JavaScript實現(xiàn)平滑滾動效果

    頁面平滑滾動是網(wǎng)頁一種常見的效果,平滑滾動的原理其實很簡單,無非就是讓頁面一種肉眼可見的速度從當前位置滾動到指定位置,那如何用原生的JS實現(xiàn)這也效果呢?本文給大家介紹了JavaScript實現(xiàn)平滑滾動效果,需要的朋友可以參考下
    2024-06-06
  • JavaScript運動框架 解決速度正負取整問題(一)

    JavaScript運動框架 解決速度正負取整問題(一)

    這篇文章主要為大家詳細介紹了JavaScript運動框架的第一部分,解決速度正負取整問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JS中如何設置readOnly的值

    JS中如何設置readOnly的值

    本篇文章主要是對JS中設置readOnly值的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • JavaScript和ActionScript的交互實現(xiàn)代碼

    JavaScript和ActionScript的交互實現(xiàn)代碼

    JavaScript和ActionScript的交互實現(xiàn)代碼,需要js與flash交互的朋友可以學習下。
    2010-08-08
  • js讀取注冊表的鍵值示例

    js讀取注冊表的鍵值示例

    讀取注冊表的鍵值的方法有很多,在本文將為大家詳細介紹下使用js如何實現(xiàn)注冊表的鍵值讀取,感興趣的朋友可以參考下
    2013-09-09
  • 利用JavaScript實現(xiàn)簡單全選和全不選的思路和方法

    利用JavaScript實現(xiàn)簡單全選和全不選的思路和方法

    最近開始練習js的基本操作,常常因為一些小疏忽導致頁面效果無法實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于利用JavaScript實現(xiàn)簡單全選和不全選的思路和方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 微信小程序返回到頂部功能的簡單實現(xiàn)

    微信小程序返回到頂部功能的簡單實現(xiàn)

    在做微信小程序開發(fā)時,遇到一個問題,要如何實現(xiàn)返回頂部的功能,下面這篇文章主要給大家介紹了微信小程序返回到頂部功能的簡單實現(xiàn),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Javascript實現(xiàn)div的toggle效果實例分析

    Javascript實現(xiàn)div的toggle效果實例分析

    這篇文章主要介紹了Javascript實現(xiàn)div的toggle效果的方法,實例分析了采用純javascript實現(xiàn)toggle效果的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 如何動態(tài)加載外部Javascript文件

    如何動態(tài)加載外部Javascript文件

    這篇文章主要介紹了如何動態(tài)加載外部Javascript文件,本文舉例講解使用js加載器動態(tài)加載外部Javascript文件,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評論