1. 手把手教你写出不可读的代码(WIP)
程序员这个行业的流动性非常高,如果你写的代码每个人都能看懂,那么可替代性就会非常高,这无疑是一个很大的职业缺点。本文给出一些实用的建议,手把手教你写出不可读的代码(在不使用混淆的情况下),可有效提高你的职场竞争力。
💚分享是一种美德,如果你觉得有帮助,请把它分享给你的朋友&同事。有好的想法,欢迎 issue & PR。
1.1. 缩进
- 无规律的缩进是最重要的。 举例来说,我们来写一个简单的函数,比较2个版本号:
// func def.
// va < vb => -1
// va > vb => 1
// va = vb => 0
function compareVersion(va, vb) {
va = va.split('.');
vb = vb.split('.');
var len = Math.max(va.length, vb.length);
for (var i = 0; i < len; i++) {
if (va[i] !== vb[i]) {
return va[i] < vb[i] ? -1 : 1;
}
}
return 0;
}
// test
compareVersion('0.0.0', '0.0.1'); // -1
compareVersion('1.0.0', '2.0.1'); // -1
compareVersion('0.0.1', '0.0.0'); // 1
compareVersion('2.0.1', '1.0.0'); // 1
compareVersion('0.0.0', '0.0.0'); // 0
这段代码有很多问题,首先就是缩进,太单调了,一点也不能彰显个性,我们稍微改一下:
function compareVersion(va, vb) {va = va.split('.');
vb = vb.split('.');
len = Math.max(va.length, vb.length);
for (var i = 0; i < len; i++) {
if (va[i] !== vb[i]) {
return va[i] < vb[i] ? -1 : 1;
}}return 0;}
1.2. 变量
- 变量命名应该带有某种随机性,长短错落有致。
- 尽量使用全局变量
function fxd(asdkg, sdgoie){
// ...
ghpeks = Math.max(jsklfwoer, oto349kd);
}
1.3. 注释
很多人已经养成了写注释的坏习惯,一时可能难以改掉。其实比起不写注释,写一些有误导性的注释效果更佳。
// 返回va, vb 中最大的数。
function compareVersion (va, vb){
// ...
}
1.4. 测试
一旦有了测试,别人就知道了你的代码的功能。这样,在不用读懂你的代码的情况下,就能够重新实现该功能。
所以,千万千万不要写测试。