烂代码是怎样炼成的

论如何把自己的队友逼疯

一名前端工程师

自我介绍

  1. 大二自己做网页玩
  2. 大三大四腾讯实习
  3. 第一份工作——腾讯
  4. 第二份工作——BBT
  5. 第三份工作——阿里巴巴
  6. 饥人谷讲师

爱好

狗、刀塔、代码

创造力

就算是要干一件烂事

都能干得那么漂亮那么有创意的能力

命名

  1. 容易输入的名字。比如:Fred,asdf
  2. 单字母的变量名。比如:a,b,c, x,y,z
  3. 有创意地拼写错误。比如:verticle-algin。这样可以让人很难搜索代码。
  4. 抽象。比如:data, flag, getData… 抽象到就跟什么都没说一样。
  5. 缩写。比如:WTF、RTFSC、BT、TMD、TJJTDS
  6. 随机大写字母。比如:gEtnuMbER
  7. 重用命名。在内嵌的语句块中使用相同的变量名有奇效。

命名

  1. 使用重音字母。比如:int  ínt(注:第二个 ínt不是int)
  2. 使用下划线。比如:_, __, ___。
  3. 使用不同的语言。比如混用英语,德语,或是中文拼音。
  4. 混淆l和1。字母l和数字1有时候是看不出来的。

伪装

把注释和代码交织在一起

for(j=0; j<array_len; j+ =8)
{
    total += array[j+0 ];
    total += array[j+1 ];
    total += array[j+2 ]; /* Main body of
    total += array[j+3 ]; * loop is unrolled
    total += array[j+4 ]; * for greater speed.
    total += array[j+5 ]; */
    total += array[j+6 ];
    total += array[j+7 ];
}

伪装

换行

var string = "This is a\ 
multiple lines string"

伪装

反义

var yes = false
var no = true

checkbox.checked = yes

伪装

拼写相近的词

swimmer = 1
swimner = 2
var a = parselnt("10") 
var b = parseInt("100")

注释

不注释单位

var price = 100

在注释中吐槽

不怕神一样的对手

就怕猪一样的队友

完。

Thank you for your time.

《烂代码是怎样炼成的》

By 方方

《烂代码是怎样炼成的》

  • 2,079