工作这么久了,你还没有重构过代码?

2024-06-18 12:28

本文主要是介绍工作这么久了,你还没有重构过代码?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为什么要重构代码

代码重构是在不改变代码功能的前提下,对现有代码进行改进和优化。这是编程的核心部分之一,不能忽视。重构代码可以增强代码的可读性、可维护性和可扩展性。它的主要目的是提高性能并提高开发人员的能力。

提取代码

该方法是将部分代码块转换为单独的函数。这是为了改善代码的结构和可读性。它会将长且复杂的代码块提取到更小且更易于管理的函数中。

要提取代码,我们首先需要找到执行特定任务的代码块,该任务的执行代码是相对复杂。找到后,我们将代码提取并放置到新函数中。还要确保函数的命名是好理解的。然后,在需要执行任务的地方调用它们。

例如:

重构前

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;
}

重构后:

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;
}

用字符常量代替number

例子:
这样的做法为了提高代码的可维护性和可读性。方便后续接收的程序员更好的理解代码,也方便后续在修改值时,只需要修改常量值就可以需要改多出引用了常量的地方。

重构前

    if (temperature > 0) {//如果温度高于结冰点,我们就会执行一些措施

重构后

    const int FREEZING_POINT = 0;//FREEZING_POINT =冰点if (temperature > FREEZING_POINT) {//如果温度高于结冰点,我们就会执行一些措施}

合并重复代码

重复代码或类似的代码可能出现在不同的位置。这些代码可能不是完全相同,但是他们的功能是类似。重复代码可能会导致多种问题,包括增加维护成本、难以对代码进行更改以及引入错误的风险。

在重构代码时,您必须注意重复代码。找到这样的代码后,处理方法是将这些代码转换为单个可重用的函数/方法。
例子:

重构前

    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;}

重构后

    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;}

在上面的代码示例中,我们对总和进行了计算,然后再对平均值进行了计算。在改进后的代码中,我们用一个计算总和的函数代替了它们

简化函数

简化函数的目的是简化代码的逻辑或使其更易读、更整洁。它可以帮助你减少代码行数。

下面是一些常用的简化函数的方法

  • 删除多余的变量和表达式:有些变量或表达式可能只是在调试时才使用的,但是忘记移除,例如在 JavaScript 中使用的 console.log。请将其删除,这样可以缩短代码长度。
  • 使用内置函数:有时,使用JavaScript的内置函数可以更好地完成相同的功能,且代码量更少。
  • 简化条件语句:如果方法具有复杂的条件语句,请考虑通过组合条件或使用三元运算符进行简化。

优化代码的性能

使用延迟加载技术是一种常见的优化性能的方法,它只在需要时加载对象。这可以通过减少内存使用量来提高应用程序性能,从而加快应用程序的加载速度。

这种技术在Web开发中非常流行,特别是在像React这样的JavaScript框架中,可以通过延迟加载导入不同的组件。它还可以用于根据需要加载图像。

举个例子:
重构前

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

重构后:

    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。

总结

重构是任何开发者想要提高代码质量、性能和可维护性的必要步骤。通过花时间分析和优化你的代码,你可以消除冗余、减少复杂性,并创建一个更高效、可扩展的应用程序。

通过不断地审查和改进你的代码,你可以创建一个更强大和更强健壮性的网站

这篇关于工作这么久了,你还没有重构过代码?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072001

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd