新手最容易犯的错误: 几种方法实现的反模式

下面的几种反模式, 是我在带团队时发现的最常见错误. 希望对大家有用.

看起来很简单, 但是如果能避免的话, 你的代码的读者(90%情况下是你自己)会特别感谢你的! !


不要使用隐形的参数(声明在函数外部的变量)

下面的sum函数中的参数完全是误导


a =1;
b = 2
function sum(c,d) {  // c, d这两个参数完全没用上. 
    return a + b    // 这个变量存在于方法外,要慎用! 
}


用callback ,不要用setTimeout

例如,我要发起一个 ajax 请求, 正常的写法是:


$.get('some_url', function(){
    console.info( '操作成功');
})

绝对不要写成:


$.get('some_url')

setTimeout(function(){
    console.info("操作成功");
}, 1000)

因为你无法判断在什么时刻你关注的函数被执行完了。


方法名, 变量名, 永远不要用缩写

常见于所有没有参与过开源项目的程序员.

似乎缩写之风盛行,是源于C语言。据说当年的编译器最多支持变量的长度是8。所以: homework1homework2 居然是一个变量。 这太反人类了。

  • management 不要写成 mng,

  • implement 不要写成 impl

  • 宁可用拼音,也不要用没把握的英文来命名

    • 房屋: house? room? fitment? 当你都拿不准的时候,直接用拼音。 fang_wu

    • 一个比较有特色的词: 客餐厅 。 直接翻译成: ke_can_ting 英语里没有这个词.


参数太多时,使用 hash来重构。

重构前,5个参数:


function(a,b,c,d,e) { 
}

重构后,一个参数:


function(options){  

   a = options.a ;  b = options.b;

}

最后, 推荐几本书:


<<实现模式>> 告诉你如何写实现. 
<<Code complete>>: 如何写出规范的格式. 
<<重构>>: 如何把烂代码改成优良的代码.
点赞