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

推荐课程:融职教育--web全栈开发就业班(含价值500万10个商业项目)

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

作者:五柳
链接:https://juejin.im/post/6887184781008715789
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Image placeholder
杨生权
未设置
  0人点赞

没有讨论,发表一下自己的看法吧

推荐文章
如何写出让同事好维护的代码?

上篇牛逼:如何写出让同事无法维护的代码?这篇教你如何写出不让同事无法维护的代码!写出整洁的代码,是每个程序员的追求。《cleancode》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代

千万不要和女程序员做同事!否则你会爱上她

如果说,每个程序员都是格子衫的化身,那么,每个女程序员,早已不需要格子衫作为职业铠甲。随身带电脑是必修课,手机装VPN是安全感,写Bug时要风轻云淡,打断点就要像打粉底。我,一枚长期浸淫在IT圈、敲代

SpringBoot 深度调优,让你的项目飞起来!

项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件application.p

一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!

微信公众号:「Python读财」如有问题或建议,请公众号留言Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大

制定机器学习训练数据策略的6个技巧

人工智能(AI)和机器学习(ML)如今已经十分常见。AI指的是机器模仿人类进行认知的概念,ML是一种用于构建AI的方法。如果AI是指计算机可以根据指令执行一组任务,那么ML就是机器从数据中摄取、解析和

大数据是个技术,数据库才是它最好的产品形态

星环科技(以下简称:星环)的定位是大数据基础软件公司,而非数据库公司,却在数据库方面,做的比很多数据库公司更好更猛?这是为何?“我们认为,大数据是个技术,数据库才是它最好的产品形态”,星环科技研发总监

win10美化,让你的win10独一无二,与众不同!

1.原则美化之前,得先有一个目标对不对,笔者是一个喜欢简单的人,因此美化本着三大原则:简单,干净,整洁.呃....好像很抽象的样子,上图吧.反正没图没真相.怎么样,还可以吧,没有任何多余的东西.再来一

技术总监到底要不要写代码?

这是一个非常敏感的话题,每次谈论到技术总监要不要写代码的时候,总会引起一片争论。有的程序员说技术总监如果不写代码怎么能领导好技术团队;有的说技术总监还需要写代码?如果技术总监都需要写代码的话,那技术团

为什么要初始化css代码?

为什么要初始化css代码?首先是因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。其次初始化CSS样式可以提高编码质量,保持代码的统一

这些linux技巧大大提高你的工作效率

前言linux中的一些小技巧可以大大提高你的工作效率,本文就细数那些提高效率或者简单却有效的linux技巧。命令编辑及光标移动这里有很多快捷键可以帮我们修正自己的命令。接下来使用光标二字代替光标的位置

Oracle加大 ADW推广力度,让数据创造更多可能性

在数据库领域,Oracle的一举一动牵动着无数人的神经,不管是本地数据库,还是在云端的弹性扩展能力,Oracle的产品都是企业工作负载平台的最佳选择。安全、简单、敏捷、所见即所得,已经成为Oracle

支付宝芮雄文:用科技的力量,让天下无贼

众所周知,中国用户对移动支付的使用在全球来讲可以说是遥遥领先,无论是线上交易还是线下交易都对移动支付有着很强的依赖,而支付宝作为最主要的移动支付工具也广被大家使用。不少人认为,当移动支付替代了传统货币

建立开放的大数据精准扶贫平台,让全社会参与进来!

精准扶贫”的重要思想最早是在2013年11月,习近平主席到湖南湘西考察时首次作出了“实事求是、因地制宜、分类指导、精准扶贫”的重要指示。2015年6月,习近平主席在贵州召开部分省区市党委主要负责同志座

Python面试|一文让你读懂if __name__==’__main__’的含义

程序入口对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C和C++都需要有一个main

30分钟让你掌握Git的黑魔法

本文转载自云效公众号在GitRevNews#48期的LightReading中有一篇文章写的不错,不仅干货满满而且还附带了操作视频。其中的内容不仅覆盖了很多git使用上的基础知识,也从使用角度上解答了

​MySQL 一个让你怀疑人生的hang死现象

1、故障现象某客户反馈,在利用binlog日志的解析内容做基于时间点的恢复时,出现hang死(超过12小时那种),恢复过程无法继续,而且100%重现 基于时间点恢复的实现方式为:使用mysqlbinl

10张图让你彻底理解回调函数

课程推荐:web全栈开发就业班--融职教育--点击进入 不知你是不是也有这样的疑惑,我们为什么需要回调函数这个概念呢?直接调用函数不就可以了?回调函数到底有什么作用?程序员到底该如何理解回调函数? 这

新突破!人工智能会根据你的声音来预测你的长相

麻省理工学院的研究人员发明了一种新的人工智能,它实现了一项惊人的成就:仅通过分析一个人声音的短片段,它就能重建他们在现实生活中的样子。人工智能的预测结果并不完美,但总的来说还是相当不错的,这项研究也是

手摸手教你搭建简单的 Git 的代码自动发布

1.为什么我要弄这个? emmmm,因为有个自己的项目每次发布到线上,都要登录一下服务器,然后pull一下代码,执行一些项目初始化的命令(诸如:gitsubmoudleupdate,phpartisa

我的代码和注释都写的像坨屎,那又怎么样?

题图:摄于2019年–绍兴东湖一周前,我的朋友圈被一篇#百度某新员工发飙:前人代码写得像一坨屎,颠覆了对大厂的认知#的文章刷屏了,评论区也非常热闹。但让我惊讶的是,几乎所有的声音里都充满着嘲笑与讥讽,

我们走访了900名微软员工,为你揭秘全球最大软件公司的代码评审机制

大数据文摘出品来源:michaelagreiler编译:倪倪、钱天培、毅航全球最大的软件公司之一微软拥有约140,000名员工,其中大约44%,即超过60,000名员工,是工程师。Office、Vis

5位女性程序员的自白:计算机不撒谎;女程序员的代码一样也很棒

谁说这个领域就是男性的天下偏见本身就是一种带标签的想法她们的世界里只信奉“computer never lies”她们认为代码漂亮比发型漂亮更重要她们到底是谁?谷悦是喜欢简单、纯粹工作的气质女神,八年

VIM教程_一些小技巧

简单设置Vim “工欲善其事,必先利其器”。尽管Vim非常强大,但默认配置的Vim看起来还是比较朴素的,为了适合我们的开发需求,要对Vim进行一些简单的配置。 :setnumber显示行号 :setr

MySQL 中 JSON 字段的使用技巧

mysql5.7.8之后开始原生支持json.在类似mongodb这种nosql数据库中,json存储数据是非常自然的,在mysql中合理的使用json,能够带来极大的便利 Json字段的使用场景 在

你不知道的 PHP 缓存技巧

前言 相信有一定开发经验的PHP程序员都有缓存的使用经验,包括但不限于redis缓存,模板缓存,路由缓存,配置缓存,数据库缓存,还有opcache(真的很有用),但是今天我不准备炒冷饭了,我要讲点你不