你的同事:“这个代码的作者是谁?”

期望:“是我!” 你会自豪地回答,因为该代码像公主一样美丽。

现实:“不,不是我!” 你说谎是因为该代码像野兽一样丑陋。

现在,如果你想让期望成为现实,请继续阅读。

1 使用有意义的变量命名

使用有意义的名称,这会让你一眼就知道是什么意思。

// 不推荐
let xyz = validate(‘amyjandrews’);
// 推荐
let isUsernameValid = validate(‘amyjandrews’);

将集合类型命名为复数是有意义的。因此,不要忘记 s:

// 不推荐
let number = [3, 5, 2, 1, 6];
// 推荐
let numbers = [3, 5, 2, 1, 6];

描述函数做的事。所以,一个函数的命名应该是个动词。

// 不推荐
function usernameValidation(username) {}
// 推荐
function validateUsername(username) {}

对于 boolean 类型的命名需要以 is 作为开始。

let isValidName = validateName(‘amyjandrews’);

不要直接使用常量,因为随着时间的推移,你可能会这样:“这 TM 是什么?”。最好的是在使用之前命名好需要的常量。

// 不推荐
let area = 5 * 5 * 3.14;
// 推荐
const PI = 3.14;
let radius = 5;
let area = PI * radius * radius;

对于回调函数,不要偷懒,只是命名变量为一个字母,例如 h、j、d(可能即便是你,这些命名的主人,都不知道它们是什么意思)。长话短说,如果变量是个人 person,传个 person;如果是本书 book,传个 book:

// 不推荐
let books = [‘Learn JavaScript’, ‘Coding for Beginners’, ‘CSS the Good Parts’];
books.forEach(function(b) {// …
});
// 推荐
let books = [‘Learn JavaScript’, ‘Coding for Beginners’, ‘CSS the Good Parts’];
books.filter(function(book) {// …
});

2 抛出信息丰富的异常

“An error occurs.”
或者只是:Error.
每当我在某些 app 或网站中看到这样的错误,如果我作为用户,我会讨厌它。我做的什么是错误的?是我导致的这个错误?那么错误是什么?你并没有告诉我,接下来我应该怎么做?
你的用户可能会和我有同样的感受,有时他们将会卸载你的 app,并不会再安装。
其实,写一个清楚的错误消息不是很难的事。
如果此时没有连接网络,则:

showMessage(‘No internet connection! Please check your connection and try again!’);

如果用户忘记输入信息,则:

showMessage(‘Please enter your username’);

更重要的是,一个清楚的错误可以帮助你快速定位 bug,并且节省你很多开发的时间。

if (error) {throw new Error(‘validation.js:checkUser: special characters are now allowed’);
}

以上这些就是你可以参考的错误消息格式。

3 尽可能早地 return

请看下面这段代码:

function login(username, password) {if (isValid(username)) {// Log in} else {showMessage(‘Username is not valid’);}
}

其实,这里 else 的部分是不需要的。我们应该通过尽早返回一个信息来移除它:

function login(username, password) {if (!isValid(username)) {showMessage(‘Username is not valid’);return;}// Log in
}

这会让你的代码变得更加清晰。边缘条件应该放在较早的位置,然后再放置较长的部分,它要处理更多的逻辑。

4 不要一个函数太多的权利

每个函数应该只承担一项责任。不要出现一个强大的函数做太多事情况。

function validateAndLogin() {// Do a lot of things here
}

and 这个单词不应该是函数名的一部分。And 会导致添加更多的责任到函数中,这从长远看来弊大于利。

下面这种写法是最好的:

function validate() {// Only validate
}
function login() {// Only login
}

5 避免副作用

在函数外的任何东西都不是它的业务。所以,函数不应该接触到它们中的任何一个。

例如:

var number = 3;
function changeNumber(add) {number = 2 + add;return number;
}
changeNumber();

当你调用一个改变 number 的函数,number 变量的值将会被改为 6。这是个真实存在的问题,因为有时你对改变了全局变量一无感知。所以,你应该在你的项目避免产生副作用。

那要怎么做?通过使用纯函数。

上面这个例子可以改成这样:

function addThree(summand) {const CONSTANT = 3;let sum = summand + CONSTANT;return sum;
}

6 创建模块

当你创建一些函数。它们似乎在做类似的动作。例如,验证用户名和验证密码。那么,你会感觉到它们可以分到一个模块中。这里我们称之为验证模块。

const validateUsername = function (username) {// Validate username
};
const validatePassword = function (password) {// Validate password
};
Module.exports = {validateUsername,validatePassword
};
const { validateUsername,validatePassword
} = require(‘./validation’);
let isUsernameValid = validateUsername(‘amyjandrews’);

在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是想转行,或是大学生,还有工作中想提升自己能力的web前端党,欢迎大家的加入我的前端开发交流群:603985993
希望大家诚心交流!,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!也可以关注我的微信公众号:【前端留学生】
每天更新最新技术文章干货。

7.使用代码格式化插件

我大多数的项目都是用 VSCode 开发的,如果你也在使用 VSCode,请确认安装了 Prettier 来保持漂亮的代码。
这个插件将会节省你花在格式化代码上的时间。得益于它,你可以利用这部分时间将更多的精力放在代码质量上。

❤️ 爱心三连击
通过阅读,如果你觉得有收获的话,可以爱心三连击!!!

作者:五柳 链接:https://juejin.im/post/6887184781008715789 来源:掘金

谁不想写出干净的代码?7 个技巧,让你的同事爱上你的代码相关推荐

  1. 《代码规范》如何写出干净的代码(四)对象和类

    大家好,这段时间上海的疫情太严重了,我们这些周边城市也收到了一些波及,是不是的部分区域就被封锁-期望上海的疫情早日过去,加油,每一位打工人-最后,求关注,求收藏,求点赞,任何意见都可以留言,谢谢- 前 ...

  2. 想写出优质的分析报告,可不能一“抄”了事

    临近年底,做数据分析的同学们都在写各种报告.按理说,写数据分析报告是数据分析师最基本的技能,人人都该会.可怕就怕,自己辛辛苦苦写完的东西没!人!看!没人看还是好的,更怕的是 在接到众多同学求助之后,今 ...

  3. 嘿~你想写出五彩斑斓的BUG吗

    如果代码的颜色有助于提升效率,那么往下看,如果觉得晃眼睛就没必要往下看了(可能也没机会往下了> _ <) 网盘下载插件:all-color-themes.jar(提取码:gf2x) git ...

  4. 学会这6个强大的CSS选择器,将真正帮你写出干净的CSS代码!

    CSS中的选择器用于选择元素并设置其样式.在我们使用其中一个之后,它们可能会非常强大.在本文中,我将引导您通过6个功能强大的CSS选择器,这些选择器将真正帮助您在下一个项目中编写干净的CSS. 1. ...

  5. 不是美工却依然想写出美丽的CSS该肿么办

    虽然对CSS已经较熟悉了,但是却依然写不出美丽的布局及页面.一是因为自己美术的先天不足,二是因为人的精力毕竟是有限的.所以就想找一些已经写好的CSS,做个储存.后来偶然知道CSS框架.经过大量的搜索, ...

  6. 如何写出优质干净的代码,这6个技巧你不能错过!

    编写干净的代码并不是一件容易的事情,这需要尝试不同的技巧和实践. 作为一名开发者,编写一手干净的代码很重要. 先列举出编写干净代码的一些好处,再提出6个技巧用于编写干净代码,供开发者进行参考学习. 开 ...

  7. 三周写出高性能的Python代码,这些小技巧你值得一试。

    1一个不上进的 Python 使用者 我是一个有 C 语言背景的开发者.最近转做了 Python,平时用 Python 还算 6,这周在给新员工分享工作之后,有个小孩跑来问我:"哥,你是学 ...

  8. 如何读懂并写出装逼的函数式代码

    今天在微博上看到了 有人分享了下面的这段函数式代码,我把代码贴到下面,不过我对原来的代码略有改动,对于函数式的版本,咋一看,的确令人非常费解,仔细看一下,你可能就晕掉了,似乎完全就是天书,看上去非常装 ...

  9. 如何读懂并写出装逼的函数式代码 1

    今天在微博上看到了 有人分享了下面的这段函数式代码,我把代码贴到下面,不过我对原来的代码略有改动,对于函数式的版本,咋一看,的确令人非常费解,仔细看一下,你可能就晕掉了,似乎完全就是天书,看上去非常装 ...

最新文章

  1. 本地应用 v-on补充
  2. 数论分块 ---- 2020牛客多校第7场H-Dividing[思维+数论分块]
  3. php 连接mysql 错误排查一例
  4. 【编程题目】调整数组顺序使奇数位于偶数前面
  5. Android学习笔记-Service
  6. Win32ASm学习[1]:RadASm下测试Debug
  7. Android 串口开发,发送串口命令,读卡,反扫码,USB通讯,实现demo。——持续更新
  8. C++:18---函数模板(template)
  9. 【ACwing】一、基础算法:1.1 递归枚举(指数型)
  10. java 所得税计算_java个人所得税计算器
  11. (附源码)springboot大学生竞赛管理平台 毕业设计 251522
  12. android 日语输入法,Android日语输入法Simeji使用示例
  13. [bat] cmd命令进入用户登录界面和屏幕保护程序
  14. 关于支付账户体系研究
  15. 刘鹏教授接受新华日报财经客户端采访:智能制造应用落地生根,“江苏智造”进入快速增长期...
  16. inb inw inl outb outw outl:端口操作
  17. Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
  18. js学习笔记--了解promise
  19. java 书 例子_刚学了java中的方法,看了书本的例子不会做,求大神做出来研究下...
  20. 道路测量xy坐标表示什么_直线度影像测量仪

热门文章

  1. java mysql_num_rows_JAVA MYSQL sql_calc_found_rows和found_rows()实践
  2. mysql in and in_完美解决mysql in条件语句只读取一条信息问题的2种方案
  3. linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
  4. oracle 双层循环,oracle的双重for循环
  5. 制作第一个HTML网页,2制作第一个HTML网页.ppt
  6. React 16.8.3 发布,构建用户界面的 JavaScript 库
  7. Kubernetes资源分配(limit/request)
  8. Android ActionBarSherlock使用教程
  9. Android系统对话框
  10. 关于iOS中MVC和MVVM的区别和联系