烂代码是怎样炼成的
论如何把自己的队友逼疯
一名前端工程师
自我介绍
- 大二自己做网页玩
- 大三大四腾讯实习
- 第一份工作——腾讯
- 第二份工作——BBT
- 第三份工作——阿里巴巴
- 饥人谷讲师
爱好
狗、刀塔、代码
创造力
就算是要干一件烂事
都能干得那么漂亮那么有创意的能力
命名
- 容易输入的名字。比如:Fred,asdf
- 单字母的变量名。比如:a,b,c, x,y,z
- 有创意地拼写错误。比如:verticle-algin。这样可以让人很难搜索代码。
- 抽象。比如:data, flag, getData… 抽象到就跟什么都没说一样。
- 缩写。比如:WTF、RTFSC、BT、TMD、TJJTDS
- 随机大写字母。比如:gEtnuMbER
- 重用命名。在内嵌的语句块中使用相同的变量名有奇效。
命名
- 使用重音字母。比如:int ínt(注:第二个 ínt不是int)
- 使用下划线。比如:_, __, ___。
- 使用不同的语言。比如混用英语,德语,或是中文拼音。
- 混淆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,124