一个命名提供的信息量越多,就是越好的命名。vue
声明一个变量,是编程里最简单的事了。react
在学习编程之初,先要会的就是声明一个变量。编程
int a = 1;
复制代码
命名又是咱们工做中最有难度的事。bash
随着咱们技术能力的提升,作的项目也愈来愈大,业务愈来愈复杂。命名稍微不注意,就变成一堆无心义或者误导咱们的字符串。async
之因此说命名困难,个人想法是命名不单是想一个单词就ok。须要更多的理解业务,理解咱们使用的技术,才能作到最贴切的命名。函数
回到咱们的宗旨,来看看命名都会给咱们提供哪些信息量。学习
var username = '卡哇伊';
复制代码
这段代码中有个变量username,它为咱们提供了一个信息。ui
var _username = '卡哇伊';
复制代码
这段代码是有个变量_username,它为咱们提供了两个信息。this
class User {
constructor() {
this._name = '卡哇伊';
}
getName() {
return this._name;
}
setName(val) {
this._name = val;
}
}
复制代码
读到这里,我想你大概知道我要说的什么意思了。咱们经过命名的格式,用开头有下划线表明私有变量,用首字母大写表明是一个类。区分不一样类型的成员,达到让代码拥有更多信息量的目的。spa
那么,重点就是掌握一套这样的命名规则,并严格贯彻这套规则。
这里拿React写一个页面做为例子 首先我要新建一个Pages文件夹,而后新建一个ProductListPage文件夹,在里面创建index.js文件,代码以下:
class ProductListPage extends Component {
constructor(props) {
this.state = {
productList:[],
categroyOptions:[],
}
}
componentDidMount() { ... }
async requestProductList() { ... }
async requestCategroyOptions() { ... }
renderProductList() {
const { productList } = this.state;
return productList.map(product => { ... });
}
renderHeader() { ... }
render() { ... }
}
复制代码
嗯,每一个命名都满满的信息量,咱们就获得了易读又工整的代码。
值得注意的是,命名是件须要自律和习惯的事。好比某一天增长了一个产品包装页,我写成了goodsPackingPage。这样‘产品’这个有特殊业务含义的字段在项目中有了两个命名,product和goods,这就形成了必定的混乱。
我见过这样一个单文件,有2000多行的代码,一样表明品类,结果有三个单词type,catagory,class。起初我觉得是不一样的意思,这就形成了阅读的困难。你的代码越复杂,命名不当形成的问题越严重。
因此咱们在写代码时,创建的命名秩序,就不能破坏它。一旦破坏,本来能够传达的信息,便再也不可信。好比新写的私有字段不如下划线开头。那么之后在函数中看到变量,就不能根据是否已下划线开头,判断它是不是私有变量了。
判断一个命名是否糟糕,就是看它有没有传达信息。更糟糕的是,它传达错误的信息。
好的命名就是能传达更多信息。依靠的是你创建的命名秩序。
若是你对整洁代码颇有兴趣。推荐《代码整洁之道》这本书。里面有更多详细的关于命名的技巧知识。