这几天bug多,自我检讨一下

这段时间(主要指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中是不被许可,自然要承受诅咒代价~

posted @ 2018-05-10 12:30  Liaofy  阅读(249)  评论(0编辑  收藏  举报