4个你可能不知道的编码好习惯,让你的代码变得更好

什么是伪代码,它如何使你成为更好的程序员? 努力学习编程?通过学习伪代码来掌握代码。但是什么是伪代码,它真的有帮助吗? 当你第一次开始学习编程时,在构建第一个应用程序之前,需要学习很多东西。像程序员一样思考可以帮助你将问题分解为算法来解决问题。算法是你的代码将用来解决问题或回答问题的步骤。 如果你是一门新的编码器,那么从一开始就像程序员一样思考可能会具有挑战性。将应用程序创意转换为实际代码需要一些练习。 为了弥合你希望应用程序执行的操作和需要编写的实际代码之间的差距,可以使用伪代码。 什么是伪代码? 伪代码是一段代码或算法的纯文本. 阅读详情

在日常开发中,有很多值的我们注意的编码细节。这些细节可能看起来都很简单容易,不太能引起我们的注意,但是其实如果我们能把它们掌握并养成习惯,会给我们带来很多看不见的益处。

本文重点整理了4简单不被熟知的良好编码细节。结合实际业务场景代码,为大家详细分析每一个好的细节习惯能带来哪些好处和具体原因解释。希望能给广大初中级开发者在日常工作中带来一点点实在的帮助。

console.log({name})取代console.log(‘name’, name)

当我们有一个变量名需要在控制台打印的时候,很多人都习惯于这样写:

console.log('name', name) 

这种写法本身没有问题,但是会有一些小问题:

1.代码长度较长,字符串无法自动补全需要复制粘贴,变量名较长的情况更为明显。
2.表现不直观,如果name是一个对象,展开的时候占位太高我们会经常找不到开头的name在哪。

有了ES6,我们其实完全可以这样写:

console.log({name}) 

这种写法在结果上,可以和上面的写法达到一样的目的。但是不管是代码简洁程度、还是可读性上,都可以得到更友好的提升。尤其是name是一个对象的时候,效果更为明显。

虽然是很简单的一行代码,但是效果还是比较实用的。

return取代if…else

假如我们有以下代码:

if (condition1) {// do condition1 
} else if (condition2) {// do condition2
} else if(condition3) {// do condition3
} 

这个写法逻辑上没有问题,但是当日后if条件增加的时候,越来越多的if else 阅读起来费劲不说,更难受的是,当我们需要删除一个条件的时候,我们需要很小心的找到每一个if else对应的{},更没办法直接选中代码直接删除。其实我们完全可以改成return形式让代码变得更简洁、更易读,且更容易编辑

if (condition1) {// do condition1 return;
}

if (condition2) {// do condition2return;
}

if (condition3) {// do condition3 return;
} 

可能你会说,这么简单的东西,还要写出来,谁不会呢?

但是看起来是很简单,大家都一眼就能看懂的改动,其实根据笔者的经验,很多有经验的老手,都会时常忘记这个小细节。

配置表取代硬编码

日常开发的类型判断是再常见不过的场景,比如我们有如下场景:

管理员的角色id为1,普通员工的角色id为2,超级管理员的角色id为3,每个角色对应显示页面上不同的按钮。普通员工只能查看列表,不能新增编辑删除,管理员和超级管理员都可以进行新增编辑。只有超级管理员才能进行删除。于是我们有以下代码:

<template><div><el-button v-if="roleId !== 2" @click="handleClick">新增</el-button><el-button v-if="roleId !== 2" @click="handleClick">编辑</el-button><el-button v-if="roleId === 3" @click="handleClick">删除</el-button></div>
</template>

<script> export default {data() {return {roleId: null}},created() {this.roleId = localStorage.getItem('roleId')if (this.roleId === 2) {this.getNormalList()}if (this.roleId === 3) {this.getSuperManageList()}if (this.roleId === 1) {this.getManageList()}},methods: {handleClick() {// 普通员工if (this.roleId === 2) {return}},getManageList() {},getNormalList() {},getSuperManageList() {}}
} </script> 

可以看到,这一小部分示例代码里有很多写死123。刚刚写好的时候不会有任何问题,但是随着我们页面越来越多,甚至项目中全局引入的时候,写死的数字满天飞。

终于有一天,事情发生了变化…

由于需求变更,后端角色字段需要调整。普通员工的字段要从2调整为4。心里暗暗的吐槽一番之后,我们傻眼了。

roleId满天飞,到处都是123。一处处找数字,一处处改。痛苦不易。

尤其是当满天飞的数字是离职跑路的人留下,而我们又刚接手的时候,这种痛苦只有自己知道…

其实这个就是我们常说的魔术字符串的的概念。魔术字符串就是指在代码之中多次出现、与代码形成强耦合的某一个具体的字符串或者数值。

优秀的代码应该及时发现并消除魔术字符串。我们看下如何优化:

<template><div><el-button v-if="roleId !== rolesConfig.normalRole" @click="handleClick">新增</el-button><el-button v-if="roleId !== rolesConfig.normalRole" @click="handleClick">编辑</el-button><el-button v-if="roleId === rolesConfig.superManagerRole" @click="handleClick">删除</el-button></div>
</template>

<script> const rolesConfig = {normalRole: 2,managerRole: 1,superManagerRole: 3
}
export default {data() {return {roleId: null,rolesConfig}},created() {this.roleId = localStorage.getItem('roleId')if (this.roleId === rolesConfig.normalRole) {this.getNormalList()}if (this.roleId === rolesConfig.superManagerRole) {this.getSuperManageList()}if (this.roleId === rolesConfig.managerRole) {this.getManageList()}},methods: {handleClick() {// 普通员工if (this.roleId === rolesConfig.normalRole) {return}},getManageList() {},getNormalList() {},getSuperManageList() {}}
} </script> 

你可能发现了,常用的消除魔术字符串的方法,其实就是把它写成一个变量。这样就可以消除耦合,以后我们只要维护一处代码配置就可以了。当然,你还可以通过import方式将config作为全局配置项供所有模块消费。

巧用JS隐式类型转换

JS是一门弱类型语言,不同type的变量可以相互转化。我们可以巧妙的利用这一特性,让我们的代码在做类型转换的时候,变得更简洁更优雅。直接上代码:

  • 快速转换Number类型:
// 字符串转数字代码对比 

const price = parseInt('32'); //传统方式
const price = Number('32'); //传统方式

const price = +'32'; //新方式

// 日期转换为时间戳代码对比 

const timeStamp = new Date().getTime(); //传统方式
const timeStamp = +new Date(); //新方式

//布尔转数字新方式
 console.log(+true); // Return: 1
 console.log(+false); // Return: 0 
  • 快速转换Boolean类型:
// 各种类型转布尔代码对比 

const isTrue = Boolean('') //传统方式
const isTrue = !!'' //新方式

const isTrue = Boolean(0) //传统方式
const isTrue = !!0 //新方式

const isTrue = Boolean(null) //传统方式
const isTrue = !!null //新方式

const isTrue = Boolean(undefined) //传统方式
const isTrue = !!undefined //新方式 
  • 快速转换String类型:
// 数字转string代码对比
const num = 1;

const str = num.toString(); //传统方式
const str = num + ''; //新方式 

总结

除此之外,还有很多平时常见书写好习惯,比如:三元表达式默认初始值解构赋值巧取key等,这里就不一一介绍了。我们此次介绍的4个特性,希望可以引起大家的注意,让我们的代码变得更加美好~

这些好的习惯,有些可能当时不会给我们带来立竿见影的效果,但是随着时间慢慢迭代,总有一天我们能享受到这些好的习惯带来的长久益处。这些益处主要体现在代码日后的可读性可维护性可扩展性上。

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

归零法编码、曼彻斯特编码和差分曼彻斯特编码-----详解 归零法编码、曼彻斯特编码和差分曼彻斯特编码     数字信号和数位化编码的数据之间存在着自然的联系。数位化存储的数据表现为0和1的序列。由于数字信号能够在两个恒量之间交替变换,所以可以简单地把0赋予其中的一个恒量,而把1赋予另一个恒量。这里恒量的具体取值并重要。如果是电子信号的话,这两个恒量数值相同,但符号相反。为了保持论述的普遍性,我们把它们分别称为“高电平”和“低电平”。 1. 归零 阅读详情

相关推荐

遵循良好的编码习惯可以让你的 JavaScript 代码变得更好。在本文中,我将为你介绍一些你可能知道编码好习惯,并提供相应的源代码示例。

通过遵循这些编码好习惯,你可以写出更好、更健壮的 JavaScript 代码,提高代码质量和可维护性。记住,良好的编码习惯是一个持续学习和实践的过程,随着你对 JavaScript 的深入了解,你可以发现更多的编码好习惯,并将它们应用到你的项目中。代码中避免了使用全局变量,并使用模块化的方式导出了一个计算圆面积的函数。以上是一些你可能知道编码好习惯,它们可以帮助你写出更好JavaScript 代码。遵循这些习惯可以提高代码质量、可读性和可维护性,使你的代码更健壮和高效。

XymkMl的博客 86

良好的编码习惯

错的, 很好的资料,大家一起分享

Claude 3 与 GPT-4 编码,谁更好? Claude 3 与 GPT-4编码测评

在快速发展的人工智能领域,两种著名的语言模型已经成为帮助开发人员进行编码工作的强大工具——Claude 3 和 GPT-4。在本文中,我们将探讨并比较 Claude 3 和 GPT-4 在各种编码场景中的性能。过,由于这两个模型在模型设计原理上有所同,GPT-4有更多经过验证和预训练的数据,未来GPT-4可能提供更全面的结果。在快速发展的人工智能领域,两种著名的语言模型已经成为帮助开发人员进行编码工作的强大工具——Claude 3 和 GPT-4。Claude 3 与 GPT-4 编码,谁更好

强化学习曾小健 1269

(精华)良好的编码习惯

1、修改完代码要自测 2、方法入参都要校验:例如长度、是否为空 3、修改老接口的时候,思考接口的兼容性。 4、对于复杂的代码逻辑,添加清楚的注释 5、使用完IO资源流,需要关闭 6、代码采取措施避免运行时错误(如数组边界溢出,被零除等) 7、尽量在循环里远程调用、或者数据库操作,优先考虑批量进行。 8、写完代码,脑洞一下多线程执行会怎样,注意并发一致性问题 9、获取对象的属性,先判断对象是否为空 10、多线程异步优先考虑恰当的线程池,而是new thread,同时考虑线程池是否隔离。 尽量要所有业务都

码农界的小学生 1035

这样编码才规范 ——128个编码好习惯

编码习惯

qq_51351004的博客 493

专业人士的编码习惯

文章目录0 背景1 好的编码的要求2 错误的编码方式3 良好的编码习惯3.1 创造性输入3.2 调试3.3 保持节奏3.4 进度控制3.5 准确定义“完成”3.6 帮助和接受他人3.7 辅导 0 背景 编码是一个具有挑战的心智和体力活动,要做好它是很容易。此篇为《代码整洁之道——程序员的职业素养》的第三篇读书心得,主要讲的是良好的编码习惯。可以用于纠正我们平时低效、好的编程习惯,抑或是让我们认识到好的编程习惯并去培养它。 1 好的编码的要求 1,代码必须正常工作。 2,代码必须能帮助用户解决问题。

韩江雪de 小屋 688

clean code编码习惯

如多个地方都有计算税费的逻辑,可将其提取为一个公共的计算税费函数。- 层次清晰:代码的组织结构要有层次,如按照业务逻辑的同层次进行分层,表现层、业务逻辑层、数据访问层等,各层之间的调用关系要明确。- 明确错误处理:在代码中对可能出现的错误进行明确的处理,如使用 try - catch 块捕获异常,并给出合理的错误提示信息。- 模块划分:将代码按照功能划分为同的模块或类,每个模块有明确的职责,模块之间的耦合度要低,内聚性要高。- 及时更新:当代码发生修改时,及时更新相应的注释,确保注释与代码的一致性。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 405

可能知道的19个JavaScript编码技巧

这篇文章收集了JavaScript中一些常见的和新颖的编码技巧,并基于ES6增加了新的内容;附有长短版本的比较,以便读者更好地理解,所有的JavaScript开发防都看一下。 1、条件操作符 使用条件操作符可以在一行代码中完成 if…else 语句的功能。 const x = 20; let answer; if (x > 10) { answer = 'is great

洒满阳光的午后的博客 1596

Alamouti编码与SFBC编码

Alamouti编码在空时编码STC领域广泛应用,Alamouti编码也叫做STBC(空时块码):一次性发送两个数据。因为只有一根接收天线,所以要再发送一次,接收端才能正常接收。Alamouti编码的巧妙之处在于知道信道的情况下,将信道矩阵正交化。是两根发射天线,一根接收天线,并且发射机知道信道,那么该如何发射。两个信号都分别经过了两个信道,获得了分集的效果。可验证上述信道矩阵是正交矩阵。Alamouti编码的。

qq_45889056的博客 1万+

高效程序员的好习惯

软件工程师花费大量时间通过练习leet code问题和完善简历来获得更好的面试通过可能。一旦他们最终被谷歌、亚马逊或其他公司录用,他们可能会发现:过去用来得到这份工作的技能与他们日常工作中需要的技能并匹配。 我们的团队受到 TechLead 创建的高效程序员七项技能的启发。我们想提供我们自己对这个话题的看法。以下是我们总结的高效程序员的七项技能。 1. 学习如何阅读别人的代码 除了你,每个人写的代码都是垃圾?实际上,能够在别人的代码之上继续工作是一项有多重好处的伟大技能。 管以前工程...

weixin_37991107的博客 787

Baidu Comate——基于AI的智能代码生成让你的编码更快、更好、更简单!

Baidu Comate——基于AI的智能代码生成让你的编码更快、更好、更简单!

m0_62975468的博客 1万+

一步一步,统一项目中的编码规范(vue, vscode, vetur, prettier, eslint)

团队开发中,多人开发同一个项目,由于个人编码习惯同,一个项目中最终的代码风格可能差别很大,所以需要通过工具进行约束来保证代码风格的统一。同时也希望通过工具尽可能的减少低级错误出现,并且能帮助修正,所以有了各种各样的 lint 和 formatter。 本篇的目标是使用 vscode 编辑器,使用 prettier 插件,结合使用 eslint 对代码进行校验和修正,并使用 eslint-conf...

weixin_33849942的博客 2367

软件工程-良好编码习惯

总结一点点良好编码习惯

m0_58621319的博客 347

C51代码风格

有的时候自己写的代码,过了一段时间就忘了,再回头一看,发现自己也看懂了。 因此,光要写好说明文档,还要养成良好的代码风格。 良好的代码风格,有助于提高代码的可读性、可维护性,仅方便自己阅读、使用,更是方便与同事之间的交流、沟通。 1、使用拼音命名。 这是最常见的误区之一,如下图所示,用拼音定义了时、分、秒三个变量。 但是拼音的重码率太多,很容易让人摸着头脑。 建议使用英文...

一个人要像一支队伍 1437

优秀编码习惯汇总(持续更新)

1.在数值和符号之间要有空格 //结构清晰 int team = 4; //结构混乱 String gooods="fasdfasdfadfasfdas"; 2.需要注释的地方必须注释,便于别人阅读你的代码,或者使用你的类 /** * @Title: positive_negative * @Description: 取反 void * @author 孙悟...

心中有侠 981

编码习惯,优化直觉

“顶尖水平”是一种参考,而是模仿。 在自己身上打出人家的影子。 在人家身上找到自己的影子。 作为一个还有点追求的程序员,在编程实践中得来几点看法。就两点“编码习惯”和“优化直觉”,但本文有一个局限。 变量定义的越多,程序越好写 求有功,但求无过 编程是一件很危险的事,最重要的是保证逻辑正确,功能得到有效地实现。稍留神,就有可能出bug。 给无聊的编程增添一点乐趣 命名规则,封装,二分求幂,层序,并查集 作为一个还有点追求的程序员,在编程实践中得来几点看法。就两点“编码习惯”和“优化直觉”,但本文有

发表于董的博客,gentledongyanchao 1037
上一篇: 【实战记录】WebSocket在vue2中的使用
下一篇: 6 个你必须明白 Vue3 的 ref 和 reactive 问题(入门篇)
梅花十三儿
博客等级 码龄5年 1035粉丝 444原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值