今天来和大家聊聊那些让人哭笑不得的编程技巧。
你知道吗,有时候,我们程序员的一些“小技巧”能让我们成为公司里不可或缺的存在,但这些技巧,可能并不是那么值得推广。
不过,为了让大家乐一乐,我还是决定分享一下这些“技巧”。
准备好了吗?让我们开始吧!
1. 缩短变量名
首先,让我们聊聊变量命名。你知道的,变量名越短,代码看起来越简洁,我们就能有更多的时间去思考更深层次的逻辑问题。比如:
Good 👍🏻
let a = 42;
而不是:
Bad 👎🏻
let age = 42;
2. 不要写注释
接下来,我们聊聊注释。你知道吗,三行代码不写注释,足以让你的同事问你十八遍,这样他们就彻底离不开你了。比如:
Good 👍🏻
const cdr = 700;
而不是:
Bad 👎🏻
// 700ms的数量是根据UX A/B测试结果进行经验计算的。
// @查看: <详细解释700的一个链接>
const callbackDebounceRate = 700;
3. 尽可能把代码写成一行
有时候,我们为了减少项目体积,会手动压缩代码,比如:
Good 👍🏻
document.location.search.replace(/(^\?)/,'').split('&').reduce(function(o,n){n=n.split('=');o[n[0]]=n[1];return o},{})
而不是:
Bad 👎🏻
document.location.search
.replace(/(^\?)/, '')
.split('&')
.reduce((searchParams, keyValuePair) => {
keyValuePair = keyValuePair.split('=');
searchParams[keyValuePair[0]] = keyValuePair[1];
return searchParams;
}, {})
4. 不要处理错误
错误处理?那是什么?我们的代码是完美的,没有错误!比如:
Good 👍🏻
try {
// 意料之外的情况。
} catch (error) {
// tss... 🤫
}
而不是:
Bad 👎🏻
try {
// 意料之外的情况。
} catch (error) {
setErrorMessage(error.message);
// and/or
logError(error);
}
5. 广泛使用全局变量
全球化的时代,我们的代码也要跟上步伐。比如:
Good 👍🏻
let x = 5; function square() {
x = x ** 2;
} square(); // 现在x是25
而不是:
Bad 👎🏻
let x = 5; function square(num) {
return num ** 2;
} x = square(x); // 现在x是25
6. 备用变量
未雨绸缪,万一用到了呢?比如:
Good 👍🏻
function sum(a, b, c) {
const timeout = 1300;
const result = a + b;
return a + b;
}
而不是:
Bad 👎🏻
function sum(a, b) {
return a + b;
}
7. 如果语言允许,不要执行类型检查
无类型才是最好的类型。比如:
Good 👍🏻
function sum(a, b) {
return a + b;
} // 在这里享受没有注释的快乐
const guessWhat = sum([], {}); // -> "[object Object]"
const guessWhatAgain = sum({}, []); // -> 0
而不是:
Bad 👎🏻
function sum(a: number, b: number): ?number {
// 当我们在JS中不做置换和/或流类型检查时,覆盖这种情况。
if (typeof a !== 'number' && typeof b !== 'number') {
return undefined;
}
return a + b;
} // 这个应该在转换/编译期间失败。
const guessWhat = sum([], {}); // -> undefined
好的,小林君继续给大家爆料,让我们的“编程技巧”更加丰富多彩!
8. 代码「Plan B」
准备一些永远也运行不到的代码,它们可以作为你的「Plan B」。比如:
Good 👍🏻
function square(num) {
if (typeof num === 'undefined') {
return undefined;
} else {
return num ** 2;
}
return null; // 这就是我的"Plan B".
}
而不是:
Bad 👎🏻
function square(num) {
if (typeof num === 'undefined') {
return undefined;
}
return num ** 2;
}
9. 嵌套的三角法则
逻辑简洁明了,一看就能懂。比如:
Good 👍🏻
function someFunction() {
if (condition1) {
if (condition2) {
asyncFunction(params, (result) => {
if (result) {
for (;;) {
if (condition3) {
}
}
}
})
}
}
}
而不是:
Bad 👎🏻
async function someFunction() {
if (!condition1 || !condition2) {
return;
}
const result = await asyncFunction(params);
if (!result) {
return;
}
for (;;) {
if (condition3) {
}
}
}
10. 混合缩进
避免缩进,因为它们会使复杂的代码在编辑器中占用更多的空间。如果你不喜欢回避他们,那就和他们捣乱。比如:
Good 👍🏻
const fruits = ['apple',
'orange', 'grape', 'pineapple'];
const toppings = ['syrup', 'cream',
'jam',
'chocolate'];
const desserts = [];
fruits.forEach(fruit => {
toppings.forEach(topping => {
desserts.push([fruit, topping]);
});
})
而不是:
Bad 👎🏻
const fruits = ['apple', 'orange', 'grape', 'pineapple'];
const toppings = ['syrup', 'cream', 'jam', 'chocolate'];
const desserts = []; fruits.forEach(fruit => {
toppings.forEach(topping => {
desserts.push([fruit, topping]);
});
})
好了,今天的分享就到这里了。这些技巧虽然听起来有点搞笑,但它们确实能让我们成为公司里那个“不可或缺的人”。
不过,我建议大家还是不要真的去实践这些技巧,
毕竟,写出清晰、可维护的代码才是我们作为程序员的真正追求。