• 这几天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中是不被许可,自然要承受诅咒代价~

  • 相关阅读:
    sql 删除表数据并使ID自增重置
    PHP的常用字符串处理
    一个http请求的详细过程
    elasticsearch7.7-postman-json脚本
    elasticsearch7.7入门三-小试牛刀-批量导入json数据
    elasticsearch7.7入门三-小试牛刀
    elasticsearch7.7入门二-安装
    elasticsearch7.7入门一-介绍
    java8新特性七-Date Time API
    java8新特性五-Stream
  • 原文地址:https://www.cnblogs.com/fayin/p/9019055.html
Copyright © 2020-2023  润新知