前言: 本文旨在编写不可维护的javaScript代码。如果有代码洁癖,请不要阅读,以免造成思想包袱。这里不做过多阐述,都是干货;
不可维护分析
不可维护不代表不可运行
1,代码可读性。
代码可读性,是代码维护效率的关键。本意上代码都是给人读的,机器执行的是编译后的二进制,把二进制封装为更简单更易上手的用法,就是从底层向高级语言的进化。那么可读性差就是尽量让人看不懂。
2,结构紧凑
松散的结构是利于维护的,尽可能的结构紧凑这样就难以解耦。逻辑要互相依赖,执行循序串联,环环相扣,代码就坚不可摧,难以改动;
开始
基本格式化
1,缩进层级
统一的缩进太容易阅读了,它将每行代码都层次分明的展现在你眼中,看一眼就知道它的作用域关系,这很利于维护,不符合我们的思想规范。放弃缩进,你将看到代码统一左对其,这种美感也许你从未体会过。
有缩进的样子
app.use('/register',(req,res)=>{
// console.log(req.query);
mongodb.find('canteen','Administrator',{name:req.query.name},(a)=>{
console.log('calian链接到注册');
//如果返回数据长度等于零,说明没有数据,需要注册
if(a.length==0){
var obj={
name:req.query.name,
password:req.query.password,
}
mongodb.insert('canteen','Administrator',obj,(b)=>{
res.send('注册成功');
})
}else{
res.send('用户名已存在');
}
})
})
没有缩进
function defineReactive(data, key, val) {
observe(val); // 递归遍历所有子属性
Object.defineProperty(data, key, {
enumerable: true,
configurable: true,
get: function() {
console.log('获取属性');
return val;
},
set: function(newVal) {
val = newVal;
console.log('属性' + key + '已经被监听了,现在值为:“' + newVal.toString() + '”');
}
});
}
看这样就要花大量的时间去分辩谁是谁的孩子,不可维护的目的就达到了
2, 语句结尾
javaScript语句要么独占一行,要么以分号结尾,实际工作中没有分号结尾也是可以运行的,AIS会自动寻找代码中应当使用分号,但实际没有分号的位置,并插入分号,大多数场景下都会正确的插入分号,不会报错,但也是有可能报错的。比如使用return的时候。
3, 行的长度
如果一行代码太长,编辑器窗口就会出现横向滚动,眼肉也看不完整行代码,就不的不滑动滚动条,也许记住后面的还会忘了前面的,所以每行一定要超过80个字符,才能让别的工程师达到这种效果。
4, 换行
如果我们换行了,行的长度就会变小,那么就看不到横向滚动条了。压缩之后的js代码是没有换行和缩进的,如果你能这样写,那么一定会成功的让维护代码的工程师头痛欲裂。
5, 空行
空行常常是被忽略的一个方面,使用空行可以使相关的代码看起来像一系列可读的段落。当使用空行分隔时就增加了可维护性。
6,命名
如果使用驼峰命名法。它就太容易理解了,也不要使用下滑线连接。就小写。而且不要见文知意,并切命名代码长的抠脚。最好发明一套解码方式,就像电报的明文和译文。不理解其意思就很难记住,那么也就难以维护了。
常量使用大写就不能影藏于代码之中了,会很容易被人看出来,要藏好常量
注释
无论是单行注释还是多行注释,只要你写了,它就又增加了可读性。所以写那玩意干嘛,写了就不符合我们宗旨了。如果你实在忍不住要写,那就写吧。