返回顶部
首页 > 资讯 > 前端开发 > JavaScript >代码整洁之道的方法有哪些
  • 752
分享到

代码整洁之道的方法有哪些

2024-04-02 19:04:59 752人浏览 独家记忆
摘要

这篇文章主要讲解了“代码整洁之道的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“代码整洁之道的方法有哪些”吧!可读的代码是可维护的在这篇短文中,我

这篇文章主要讲解了“代码整洁之道的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“代码整洁之道的方法有哪些”吧!

可读的代码是可维护的

在这篇短文中,我将介绍一些你可以用来改进你的代码的方法。本文代码示例均使用 javascript

我发现但凡是可读的代码必定是可维护的。

作为一名开发人员,我的目标是编写高质量的代码。团队中的每个开发人员,不管他/她的技术水平如何,都必须能够通过阅读理解我所写的代码。代码的可读性有助于年轻的开发人员编写代码时更加自信。

删除 不必要的 代码注释

当然,有些代码可以非常复杂。我深知这一点且见过很多次。在复杂的代码中,我会写些适当的文档和代码注释。

别误会。我不是代码注释或 JavaScript jsdoc 的爱好者,而且基本上我能不用它们便不用。

我不需要任何注释来解释这个接收 X 个数组并将它们合并到一个新的数组中的函数。

function mergeArrays(...arrays) {   let mergedArray = []    arrays.forEach(array => {       mergedArray = [...mergedArray, ...array]   })    return mergedArray }

像示例代码,如果增添文档并不能提高可读性。我希望团队成员知道展开操作符是什么。如果他们不清楚,他们应该在代码审查 code review 时来问我。

当然,我们不要忘记注释的代码块。如果我们忘记了,这里只有一个解决方案: 删除代码 。既然了不起的 git 可以检出旧代码,那么为什么还要把它留在注释中呢?

请停止把你的代码库变成垃圾场。

重视命名

如果你看到函数名 mergeArrays,就应该很清楚地知道这是一个将 X 个数组组合成一个新的数组的函数。

我知道命名是件难事。函数越复杂,命名就越难… 我有个法子让命名更容易,举个例子:有一个函数,它会合并两个数组并生成一个新的唯一的数字列表。你会怎么命名?是下面这样吗?

function mergeNumberListIntoUniqueList(listOne, listTwo) {   return [...new Set([...listOne, ...listTwo])] }

mergeNumberListIntoUniqueList 这个名字并没有那么糟糕,至少功能如其名。命名的难点在于这个函数要做两件事:一个函数做的事情越多,命名它就越困难。将这个函数拆分为两个单独的函数,命名会更容易且函数复用更容易。

function mergeLists(listOne, listTwo) {   return [...listOne, ...listTwo] }  function createUniqueList(list) {   return [...new Set(list)] }

当然,不需要调用新函数就可以很容易地创建美观的一行代码。但有时,一行代码的可读性并不高。

If 语句

我对这个问题的命名无力… 看!命名不易…

但我经常看到这种情况。

问题
if(value === 'duck' || value === 'dog' || value === 'cat') {   // ... }
解决方法
const options = ['duck', 'dog', 'cat']; if (options.includes(value)) {   // ... }

这样做,你创建了一段像是英语句子般的可读代码。

如果选项包含值,那么 ...

提前退出机制

这个准则有很多种命名方式,但我选择了 “提前退出 Early exit” 这个名字。

让我给你们看一段代码。我相信你们以前见过这样的东西。

function handleEvent(event) {   if (event) {     const target = event.target;     if (target) {       // Your awesome piece of code that uses target     }   } }

来我们检查下对象 event 是否为真,以及属性 target 是否可用。问题是上面代码我们已经用了两个 if 语句。

让我们看看如何在这里实现 “提前退出”。

function handleEvent(event) {   if (!event || !event.target) {     return;   }   // Your awesome piece of code that uses target }

在这里用 “提前退出”,你可以检查是否 event 和   event.target 同时非假 。很明显,我们确信这一事件 event.target 非假。因为如果这个语句为假,程序就不会执行其他代码。

解构赋值

在 JavaScript 中,我们可以解构数据和对象。

根据 developer.mozilla.org 上的文档, 解构赋值语法是一种 JavaScript 表达式。通过解构赋值,可以将值从数组、属性从对象中取出,赋值给其他变量 。

一些代码示例

// Destructuring an object const numbers = {one: 1, two: 2}; const {one, two} = numbers; console.log(one); // 1 console.log(two); // 2  // Destructuring an array const numbers = [1, 2, 3, 4, 5]; const [one, two] = numbers; console.log(one); // 1 console.log(two); // 2

解构的问题在于,它有时会为属性创建一个不好的命名。最好的例子是从 api 获取数据并接收具有 data 属性的响应对象。

const url = "Http://localhost:8080/api/v1/organizers/1" const response = await axiOS.get(url) const {name} = response.data

这个代码示例说明你正在获取 id 为 1 的 organizer。organizer 对象有一个名字,你可以解构它。这样做没什么问题。

这段代码可以正常运行。但是为什么属性名还是 name ? 那将是整个范围中唯一的 name 属性吗?属性名又来自哪个对象?

通过重命名属性可避免这些问题。

const url = "http://localhost:8080/api/v1/organizers/1" const response = await axios.get(url) const {name: organizerName} = response.data

这段代码变得更具可读性。每个人都知道变量是 organizer 的名字。

童子军规则

听过这样一句话吗:“永远保持离开时的露营地比你发现它时更整洁”?

这就是童子军的规则。让代码比发现时更好。你发现代码异味 code smell?重构它!你发现一个未使用的变量?删除它!

我喜欢把童子军规则和打扫房间的情况进行类比。想象一下,你家里的每个人都把盘子放在水槽上,把所有垃圾都放在走廊上,把所有要洗的衣服都放在浴室里。但是每个星期天,你必须花费 4 个多小时清理整个房子。你会钟意吗?

我肯定答案是 NO。所以如果每个人都立即清理房间的小部分,星期天的工作量会小一些。

代码库同理。如果每个小的代码异味 code smell 都留在代码库中,没有人删除未使用的变量,linter 就会抓狂且有大约 77 个 warning。而且代码库将会有很多清洁工作要做,但是如果每个人都承担起自己的责任并遵守童子军法则,很多问题将会得到解决。

代码风格

同样重要的还有确定团队中的代码风格。

我不 care 你是喜欢单引号还是双引号,空格还是 tab,结尾逗号还是不用。选择一种风格并坚持下去。你可以用 Linter 或者 Prettier 来做这件事。

有很多工具可以用来解决代码风格问题。我最钟意的是使用 Husky 预提交钩子。Prettier 的文档中也有一个关于预提交钩子的页面。

这个预提交钩子总是在每次提交之前运行配置好的命令。如果你正确地配置它,它会运行得更漂亮,并对所有文件应用所有规则。这确保了团队总是拥有统一的代码风格,而没有任何糟糕的代码。

感谢各位的阅读,以上就是“代码整洁之道的方法有哪些”的内容了,经过本文的学习后,相信大家对代码整洁之道的方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 代码整洁之道的方法有哪些

本文链接: https://lsjlt.com/news/84214.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 代码整洁之道的方法有哪些
    这篇文章主要讲解了“代码整洁之道的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“代码整洁之道的方法有哪些”吧!可读的代码是可维护的在这篇短文中,我...
    99+
    2024-04-02
  • 分析JavaScript代码整洁之道
    本篇内容主要讲解“分析JavaScript代码整洁之道”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析JavaScript代码整洁之道”吧!1. 用命名的变量...
    99+
    2024-04-02
  • Web前端有哪些整洁的代码
    本篇内容主要讲解“Web前端有哪些整洁的代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web前端有哪些整洁的代码”吧!一、DOCTYPE的声明如果我们想做好...
    99+
    2024-04-02
  • 高效整洁CSS代码原则有哪些
    今天就跟大家聊聊有关高效整洁CSS代码原则有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 适当的代码注释代码注释可以让别人更容易读懂你的代...
    99+
    2024-04-02
  • PHP 的代码简洁之道(Clean Code PHP)
    介绍 Robert C.Martin’s 的 软件工程师准则 Clean Code 同样适用于 PHP。它并不是一个编码风格指南,它指导我们用 PHP 写出具有可读性,可复用性且可分解的代码。 并非所有的准则都必须严格遵守...
    99+
    2023-09-05
    php Clean Code PHP Powered by 金山文档
  • Python 代码整洁之道:封装与抽象类的金科玉律
    ...
    99+
    2024-04-02
  • 写简洁java代码的技巧有哪些
    小编给大家分享一下写简洁java代码的技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 定义配置文件信息有时候我们为了统一管理会把一些变量放到 yml...
    99+
    2023-06-29
  • 有哪些让代码整洁、过程清晰的BASH Shell编程技巧
    这篇文章主要介绍“有哪些让代码整洁、过程清晰的BASH Shell编程技巧”,在日常操作中,相信很多人在有哪些让代码整洁、过程清晰的BASH Shell编程技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有...
    99+
    2023-06-09
  • 编写更简洁Python代码的技巧有哪些
    这篇文章主要介绍“编写更简洁Python代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁Python代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁Python代码的技巧有哪些...
    99+
    2023-06-16
  • 编写更简洁React代码的技巧有哪些
    这篇文章主要介绍“编写更简洁React代码的技巧有哪些”,在日常操作中,相信很多人在编写更简洁React代码的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写更简洁React代码的技巧有哪些”的疑...
    99+
    2023-07-04
  • vbs整人代码有哪些
    这篇文章将为大家详细讲解有关vbs整人代码有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、你打开好友的聊天对话框,然后记下在你QQ里好友的昵称,把下面代码里的xx替换一下,就可以自定义发送QQ信息...
    99+
    2023-06-08
  • Stream API 与 Lambda 表达式:简洁、高效的代码之道
    ...
    99+
    2024-04-02
  • 代码规范的方法有哪些
    本篇内容介绍了“代码规范的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码规范变量命名这里我简...
    99+
    2024-04-02
  • JS开发中让代码更简洁的技巧有哪些
    本文小编为大家详细介绍“JS开发中让代码更简洁的技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS开发中让代码更简洁的技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 转换布尔值除了常规的布...
    99+
    2023-06-27
  • VS代码扩展的方法有哪些
    这篇文章主要讲解了“VS代码扩展的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VS代码扩展的方法有哪些”吧!1. REST客户端REST客户端扩...
    99+
    2024-04-02
  • DIV代码使用的方法有哪些
    这篇文章主要介绍了DIV代码使用的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇DIV代码使用的方法有哪些文章都会有所收获,下面我们一起来看看吧。一、DIV代码语法&...
    99+
    2024-04-02
  • Eslint代码检查的方法有哪些
    本篇内容介绍了“Eslint代码检查的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:理解代码...
    99+
    2024-04-02
  • Python代码的优化方法有哪些
    这篇文章主要介绍“Python代码的优化方法有哪些”,在日常操作中,相信很多人在Python代码的优化方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python代码的优化方法有哪些”的疑惑有所帮助!...
    99+
    2023-06-16
  • git代码合并的方法有哪些
    本文小编为大家详细介绍“git代码合并的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“git代码合并的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。git Merge这种合并是将两个分支的历...
    99+
    2023-06-27
  • JavaScript代码重构的方法有哪些
    这篇文章主要介绍了JavaScript代码重构的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript代码重构的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.提炼函数在 JavaS...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作