代码可读性---及重构

2020-04-14  本文已影响0人  学的会的前端

代码优化的基本原则

  1. 易读性优先
  2. 如果不是性能瓶颈,就不要为了性能而改写代码
let array = []
for(let i = 0 ; i< array.length; i++){}
每次进入for循环,都要重新计算array.length;但是没必要let l = array.lengrh; i < l;因为每
次计算array.length不会造成性能瓶颈。
  1. 复杂性守恒原则:无论怎么写代码,复杂性都不会消失的。

命名规则:

  1. 注意词性:
var person = {name: 'lili'}
var person  = {
  dead: false; //如果是形容词,前面就没有必要加is。
  canSpeak: true;  //情态动词有can.should,will,need等,情态动词后接名词。
  isVip:true;//be动词有is,was等,后一般接名词
  hasChildren:true;//has加名词
}
var person = {
  run(){} //不及物动词,一般不需要参数
  drinkWater()//及物动词 一般需要参数
}
var person = {
  beforeDie(),
  afterDie()
  dead()
}
domDiv1.addClass('active') //DOM对象
$div1.addClass('active') //jQuery对象
$div.text() //等价于$div.getText()
$div.text('hi') //等价于$div.setTetx('hi')
  1. 注意代码的一致性
function getSongs(){
  return $.get('/songs).then((response){
    div.innerText = response.songs
   })
}

以上代码就违背了表里一致性的原则,函数名只表示获取歌曲,但是函数具体的内容还包括更新div,所以可以改成以下两种写法:

//纠正函数名
function getSongAndUpadteDiv(){
  return $.get('/songs).then((response){
    div.innerText = response.songs
   })
}
//写成两个函数
function getSongs(){
  return $.get('/songs)
}
funciton updateDiv(songs){
   div.innerText = response.songs
}
getSongs().then((response) => {
  updateDiv(response.songs)
 })

改代码的思路及方法

如果你的代码有单元测试,那么改起来就很放心,如果没有单元测试,就需要用小步快跑的策略一点点进行修改。
小步快跑的意思就是说,每次只修改一点点,测试通过之后,在修改一点点。

一些固定的套路

  1. 表驱动编程
  2. 自说明代码,把别人关心的代码放在显眼的位置。
上一篇 下一篇

猜你喜欢

热点阅读