本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。
更多开源作品请看 GitHub github.com/qq449245884… ,包含一线大厂面试完整考点、资料以及我的系列文章。
快来免费体验ChatGpt plus版本的,我们出的钱
体验地址:chat.waixingyun.cn
可以加入网站底部技术群,一起找bug.
本文由 Suraj Vishwakarma 撰写的博文,这篇文章讨论了如何将代码重构整合到你的编程过程中,建议你特别为重构代码分配时间,并将较大的重构问题分解为较小的问题进行处理。
下面是正文~~
编写代码很有趣,我们非常喜欢它。直到一个错误突然出现,需要相当长的时间来解决它。有时,错误并不明显,因为代码按预期运行,但在生产中可能会导致错误。可能会有性能和可访问性方面的错误,这会导致用户体验不佳。通过重构代码可以减少这类错误。
代码重构涉及在不改变其外部功能的情况下对现有代码进行改进。这是编程的核心部分之一,不能忽视,否则,我们将无法实现代码的更好版本。代码重构可以提高代码的可读性、可维护性和可扩展性。它还旨在提高性能和提高开发人员的生产力。
今天,我们将研究一些技巧,这些技巧可以帮助我们以更好的方式重构代码。
如何整合重构
在寻找改进重构的技巧之前,让我们看看如何将代码重构集成到你的编码过程中。可以使用以下建议来实现这个目的:
- 专门分配时间来重构代码
- 将较大的重构问题分解为较小的问题以进行管理
- 尝试让整个团队参与重构过程
- 使用自动化工具,可以帮助您查找常见的重构错误
提取方法
这种方法涉及将代码块转换为单独的方法/函数。这样做是为了提高代码的结构和可读性。通过提取较长且复杂的代码块,将其变成更小且易于管理的方法来实现这一目标。
要使用这种技术,我们首先需要找到一个执行特定任务的代码块,这些任务有点复杂。在识别之后,我们提取代码并将其放入一个新方法中。此外,确保为该方法起一个有意义的名称。现在,在我们需要代码的地方调用它们。
重构前
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;
}重构后
if (temperature > 32) {
// Do something if temperature is above freezing
}重构后
import React from 'react';
import MyComponent from './MyComponent';
const App = () => {
return (
<div>
<h1>My App</h1>
<MyComponent />
</div>
);
}
<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-title class_">App</span>;</pre><h4>重构后</h4><div class="widget-codetool" style="display: none;">
<div class="widget-codetool--inner">
<button type="button" class="btn btn-dark far fa-copy rounded-0 sflex-center copyCode" data-toggle="tooltip" data-placement="top" data-clipboard-text="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;" title="" data-bs-original-title="复制" aria-label="复制"></button>
</div>
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>
);
}
<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-title class_">App</span>;</pre><p>在更新版本中,我们使用 lazy 功能异步导入 <code>MyComponent</code> 组件。这意味着该组件仅在实际需要时才加载,从而提高了我们应用程序的整体性能。我们还使用 <code>Suspense</code> 组件在加载组件时显示回退 UI。</p><h2 id="item-0-7">总结</h2><p>重构是任何希望提高代码质量、性能和可维护性的开发者的基本实践。通过花时间分析和优化代码,可以消除冗余,降低复杂性,并创建更高效且可扩展的应用程序。</p><p>通过不断审查和改进你的代码,你可以创建一个更强大、更具弹性的应用程序。希望这篇文章能帮助您了解一些重构技巧。</p><p><strong>代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 <a href="https://link.segmentfault.com/?enc=RqplbE9sUsnLX0OP2xgWDQ%3D%3D.S9oBFGdzTre%2B%2BRHu37oGVTX4Js8IX%2BninTJ3UOHbpiKqtnMz67lN4zR31kgX3NpT" rel="nofollow" target="_blank">Fundebug</a>。</strong></p><h3 id="item-0-8">交流</h3><blockquote><p>有梦想,有干货,微信搜索 <strong>【大迁世界】</strong> 关注这个在凌晨还在刷碗的刷碗智。</p><p>本文 GitHub <a href="https://link.segmentfault.com/?enc=VihkzKu5JyfrhnUzMARSOg%3D%3D.zZxv9WjPZnPQDdrEUuolm%2F1nkWxTgFqNNNSHbAjz0RtcKTRBg51b48YFEGKcfurB" rel="nofollow" target="_blank">https://github.com/qq449245884/xiaozhi</a> 已收录,有一线大厂面试完整考点、资料以及我的系列文章。</p></blockquote><p></p>