前两天看到一则代码注释里出现各种脏话的消息,这让我想起了之前看过的一个很有意思的开源项目。
有一端时间,这个项目简直火得不行~
教你怎样写出不被同事骂
的代码。
项目一共列出了 20 条建议之多,这里月亮挑几条最有意思的分享出来。
变量名越简单越好
比如,变量名用 a
替代 age
。
原本需要打三个字母的时间,直接节省了 2/3 ,每天的工作效率直接爆表。
至于可读性?
那是你一个码农应该考虑的问题吗?
相信我,怎么快怎么来。
//推荐写法
let a = 42;
//不推荐写法
let age = 42;
不要写注释
千万不要写注释,写注释花费的时间,都足够你多写好几个功能的代码了。
而且你想想,公司招人都会选择技术成熟的程序员。
没有注释就看不懂代码了?
那岂不是不具备较强的读程能力?
你不写注释,我认为没有问题,如果你的同事真的读不懂,说明他需要反思自己的专业能力了。
记住啦,千万不要写注释,要相信你的同事~
ps:写到这里,突然想起一个段子。
每个程序员最讨厌做的事情:写注释。
每个程序员最讨厌其他程序员做的事情:不写注释。
尽可能把代码写成一行
把代码写成一行,可以减少不必要的存储空间消耗。
数据占用的存储空间越小,在网络中传输的速度就会越快。
在移动互联网高速发展的今天,加快数据传输,绝对是能极大的提高用户体验的操作。
所以,尽量把代码写成一行,好处非常多。
//推荐写法
document.location.search.replace(/(^\?)/,'').split('&').reduce(function(o,n){n=n.split('=');o[n[0]]=n[1];return o},{})
//不推荐写法
document.location.search
.replace(/(^\?)/, '')
.split('&')
.reduce((searchParams, keyValuePair) => {
keyValuePair = keyValuePair.split('=');
searchParams[keyValuePair[0]] = keyValuePair[1];
return searchParams;
},
{}
)
不要处理错误
每次系统提示服务异常、服务超时,对于用户来讲,都是非常糟糕的体验。
大多数用户都没有什么耐心,总是出现异常,用户可能就会破口大骂了。
所以为了用户体验,绝对不要用弹框提示异常信息。
只要没有提醒,用户就会尝试进行自我解释:怀疑自己手机坏了,或者是网络不好。
对于我们的软件,就不会有什么负面的评价啦~
同时,千万不要把错误信息记录日志。
一个上线的运行的系统出现故障时,程序员总是要花费很多时间去排查错误,这是一件非常劳神费力的事情。
所以只要没有日志文件,自然也就用不着排查问题啦。
相信我,你的同事会感谢你帮他们减少了工作量的。
// 推荐写法
try {
...
} catch (error) {
// 这里啥都不用处理
}
// 不推荐写法
try {
...
} catch (error) {
//显示错误信息
showErrorMessage(error.message);
// 记录日志文件
logError(error);
}
创建不需要使用的变量
//推荐写法
function sum(a, b, c) {
const timeout = 1300;
const result = a + b;
return a + b;
}
//不推荐写法
function sum(a, b) {
return a + b;
}
在代码里多创建一些不需要使用的变量,这样可以测试运行代码的机器极限所在。
在实践中你会发现,即便是创建了很多的变量,服务器和客户端都能毫不费力的抗住压力。
如果服务器抗不住,说明该升级服务器了。
这可是提前帮助团队排了雷呀,整个团队都会感谢你~
多使用多重嵌套
在代码里建议使用多层的 if + for 循环等嵌套,嵌套层数越多,越能体现你的技术能力。
像这样复杂的代码,没有较强的技术实力,自己写着写着都能蒙圈。
只有技术扎实的程序员,才能完美驾驭这样的写法。
所以,在工作中多写一写能够体现自己技术实力的代码,你才有机会肩负更大的责任。
//推荐写法
function someFunction() {
if (condition1) {
if (condition2) {
asyncFunction(params, (result) => {
if (result) {
for (;;) {
if (condition3) {
}
}
}
})
}
}
}
//不推荐写法
async function someFunction() {
if (!condition1 || !condition2) {
return;
}
const result = await asyncFunction(params);
if (!result) {
return;
}
for (;;) {
if (condition3) {
}
}
}
不要测试
最后一条,那就是写完代码之后一定不要测试。
很多程序员都有一个坏习惯,写完代码之后喜欢测试,甚至有些人还会测试好几遍。
他们没有想过,公司是有测试工程师的。
作为开发岗,居然把测试的活儿都给抢了,这不是抢别人饭碗吗?
一旦遇上裁员,倒霉的就是这一批测试同事。
为了同事着想,是不是该把别人的活儿留给别人?
严格按照 只开发,不测试
的方式工作, 开发的工作效率,完全能够翻倍。
好处多多。
over ~
比较有代表性的几条,我都帮大家列出来,没有做到的小伙伴,请反思一下自己。
没有做到第几条,那么请在后续的工作中严格执行,纠正自己的坏习惯。
你好,我是厂长谭庆波,就读于哈工大,计算机系学生,点击蓝字查看我的成长之路。
同时,我也是知乎博主:谭庆波,日常分享高质量程序员认知,学习资料、技术干货等,欢迎围观。
最后说一件重要的事,我最近建了一个【晋级的程序员】社群,旨在帮助新手小白快速上手找到编程的乐趣,里面沉淀了大量编程相关经验教程以及学习资料,目前社群人数已经超过2500人,欢迎大家加入:
戳原文,玩转ChatGPT~