首页 » 软件开发 » 教你写出高质量代码(代码示范命名函数嵌套)

教你写出高质量代码(代码示范命名函数嵌套)

落叶飘零 2024-07-24 13:41:51 0

扫一扫用手机浏览

文章目录 [+]

编码规范是成为一个优质程序员的重要一课,它是编程的样式的模板。
这篇文章将介绍12中编程规范及技巧,相信学习之后你的代码一定会提升一个档次。

首先我们要明确,为什么要遵循编码规范?遵循这样的约定有什么好处?

1. 遵循规范可以写出干净简洁的代码

教你写出高质量代码(代码示范命名函数嵌套) 软件开发
(图片来自网络侵删)

2. 可以代码的质量

3. 提升代码的可读性

4. 使代码维护更加容易

代码整洁之道一书的作者罗伯特曾经说过:

“干净的代码既简单又直接。
干净的代码读起来像写得很好的散文。
简洁的代码永远不会掩盖设计者的意图,而是充满清晰的抽象和直接的控制线。
” -罗伯特·马丁(Robert C. Martin)

1.不要出现莫名其妙的数字

很多程序员在实现功能的时候会分配一个没有明确意义的数字,用于特定的目的,写完这个数字后没有即使去做注释,然后过两天当程序出现问题时,翻看代码碰到这个数字,连自己都忘了它的意义。
当程序需要固定的数值参与时,给予特定的名称。

案例

//错误的示范:

for(let i = 0; i < 50; i++){

//do something

}

//正确的示范:

let NUMBER_OF_STUDENTS= 50

for(let i = 0; i < NUMBER_OF_STUDENTS; i++){

//do something

}

2.深度嵌套

有些程序需要使用到无数次的嵌套循环,看着看着就晕了,这时可以将所有循环提取到单独的函数中。

假设有一个包含两层嵌套的数组,想要拿到最后一个数组的值?一般情况下开发者都会使用嵌套循环,但不是最佳的办法。
可以尝试使用函数的反复调用来完成操作执行相同操作的,这样一来代码重复性更小,更易于阅读、重用性高。

// 错误示范

const array = [ [ ['Shoaib Mehedi'] ] ]

array.forEach((firstArr) =>{

firstArr.forEach((secondArr) => {

secondArr.forEach((element) => {

console.log(element);

})

})

})

// 正确示范

const array = [ [ ['Shoaib Mehedi'] ] ]

const getValuesOfNestedArray = (element) => {

if(Array.isArray(element)){

return getValuesOfNestedArray(element[0])

}

return element

}

getValuesOfNestedArray(array)

3.注释

注释是一个老生常谈的话题,很多人不重视,为了快速完成项目忽略注释,导致后期修改和复用出现很大问题,得不偿失。

4.避免创建大函数

当一个函数或一个类需要实现的功能太多时,建议将其分成多个小的函数。

假设我们需要加减两个数字。
我们可以用一个功能做到这一点。
但是好的做法是将它们分为两部分。
如果有单独的功能,则可以在整个应用程序中重复使用。

// 错误示范

const addSub = (a,b) => {

// add

const addition = a+b

// sub

const sub = a-b

// returning as a string

return `${addition}${sub}`

}

//正确示范

// add

const add = (a,b) => {

return a+b

}

// sub

const sub = (a,b) => {

return a-b

}

5.重复代码

重复代码也是常见的问题,如遇到此情况,将重复代码提取到函数中。

继续用上面的第2点“深层嵌套”中的例子来举例。

// 错误示范

const array = [ [ ['Shoaib Mehedi'] ] ]

array.forEach((firstArr) =>{

firstArr.forEach((secondArr) => {

secondArr.forEach((element) => {

console.log(element);

})

})

})

// 正确示范

const array = [ [ ['Shoaib Mehedi'] ] ]

const getValuesOfNestedArray = (element) => {

if(Array.isArray(element)){

return getValuesOfNestedArray(element[0])

}

return element

}

getValuesOfNestedArray(array)

6.变量命名

变量命名也是有讲究的,好的变量命名可以让代码更加通俗易懂,一般来说命名遵循以下标准,名称以小写字母开头,之后的每一个单词首字母都用大写,比如骆驼的大小写为camelCase

函数和变量都必须遵循此规则。

示例代码:

let camelCase = ''const thisIsCamelCase = () => { //so something}

7.函数命名

函数的命名基本与上述提到的变量命名规则基本一样,但需要注意的是,命名尽量注意详细,比如我们需要一个能够获取用户银行信息的功能,那么要尽量将命名具体化,如下

错误的示范:getUserInfo。

正确的示范:getUserBankInfo

8.命名时注意动词的使用

比如我们需要从数据库中获取用户信息,函数的名称可以是userInfo,user或者fetchUser,但我推荐使用含有动词的命名 getUser。

//正确示范

function getUser(){//do something}

9. 常量值所有都大写

常量命名都使用全大写的名称,并用下划线分割所有单词

//正确示范

const DAYS_IN_A_YEAR = 365;

10. 避免变量使用字母

在功能性的命名中尽量避免使用单个字母,不过如果在循环中,可以忽略这一点

//错误示范

const q = () => {

//....

}

//正确示范

const query = () => {

//....

}//this is also okay

for(let i = 0;i < 10; i++){

//...

}

结论

从长远来看,遵循代码编写规范,对开发者的自身发展来说是百利而无一害的。
每个项目的生命周期都很长,在很长的周期中谁也无法确定会用到之前的哪段代码,哪个功能。
所以对现在的每一段代码负责,就是对以后的自己负责。
加油,程序猿!


标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0