优化基本原则
- 易读性优先
- 如果不是性能瓶颈,就不要为了性能改写代码
- 复杂性守恒原则:无论怎么写代码,复杂性都不会消失。如果逻辑复杂,代码就应该是复杂的;如果逻辑简单,代码就应该是简单的
注意词性
普通变量/属性用「名词」
1 | var person = { |
布尔变量或属性用「形容词」/「be动词」/「情态动词」/「hasXXX」
1 | var person = { |
普通函数或方法用「动词」
1 | var person = { |
回调、钩子函数用「介词」开头,或用「动词的现在完成时态」
1 | var person = { |
容易混淆的地方加前缀
1 | div1.classList.add('active') // DOM对象 |
注意一致性
介词一致性
如果你使用了 before + after,那么就在代码的所有地方都坚持使用 如果你使用了 before + 完成时,那么就坚持使用 如果你改来改去,就「不一致」了,不一致将导致「不可预测」
顺序一致性
比如 updateContainerWidth 和 updateHeightOfContainer 的顺序就令人很别扭,同样会引发「不可预测」
表里一致性
函数名即能体现函数功能1
2
3
4
5function getSongs(){
return $.get('/songs).then((response){
div.innerText = response.songs
})
}
函数名 getSongs 表示获取歌曲,并没有暗示这个函数会更新页面,但是实际上函数更新了 div,造成表里不一,正确的写法是
纠正函数名
1
2
3
4
5function getSongsAndUpdateDiv(){
return $.get('/songs).then((response){
div.innerText = response.songs
})
}拆分成两个函数
1
2
3
4
5
6
7
8
9function getSongs(){
return $.get('/songs)
}
function updateDiv(songs){
div.innerText = response.songs
}
getSongs().then((response)=>{
updateDiv(response.songs)
})