这段时间(主要指4月底到5月初)写的bug
超过以往总和,觉得很有必要停一下,找找原因。所谓前车之鉴后车之师,不能也不应该在同一地方跌倒N次吧;
为什么bug频出?
深究原因,并不是代码量大、功能多,反而是在原本的基础上增、删一些小功能和文件。客观原因暂且不提,总结下个人主观上存在的问题:
- 太过自信,因为修改的功能小,相信不会有问题
- 删除文件,而没有确定其他地方是否引用了这个文件
- 测试不充分,修改某处功能可能会引起其他功能异常
如何改进
虽然已经开始写单元测试、集成测试,但这个需要最后完成了才显效果。在日常的开发、维护中,需要有意识的养成如下习惯:
1、删除文件要谨慎
在维护的过程中,也许发现某个文件、函数、代码块没有被引用,会删掉它。此时,首先应该全局搜索它是否被其他人使用,确定后再删除;然后,至少测试一遍。
2、开发流程守规范
在使用VUE
开发的过程中,我遇到这样一个场景:
在某个单文件中,在method
方法中需要用到一个全局变量,当时出于就近原则
,在方法外设置了一个属性,代码如下:
methods: {
__id: 0,
someFn() {
let __id = ++this.__id
if(error) {
if( __id === this.__id) console.log(error)
}
},
此时,error
永远不会被打印!!!
为什么?在VUE
中,methods
中的属性都是function
类型,不然会被省略,上面例子中__id = ++this.__id
,它们的值都变成NAN
。
显然,这种方式在vue
中是不被许可,自然要承受诅咒代价~