• iOS 解决一个复杂bug 之 计分卡


      由于该模块界面和业务逻辑都很复杂,并且整个界面设计和业务逻辑都在ViewController(下面简称为VC)里面完成。该VC共有3000多行,一个函数几百张的也有。所以,解决起来真是头疼。

    1. 问题描述

      当用户操作计分卡时,分数可能不对,前场和后场的序号也可能不对。也是就说,数据读写造成了错误。

    2. 问题分析

      分析:这么看来,应该是业务逻辑出现了问题。但是,跟界面的更新有没有关系,也是说不清楚。当遇到这种大量界面和逻辑纠结在一起的情况,一切也就说不清楚了。

    3. 解决思路

    3.1. 解决方案一

      怎么解决呢?现在来说,解决bug是当务之急,至于以后重构,那也是以后的事情。在这个大前提下,怎么切中要害,就是解决问题的关键了。要想解决问题,总要复现问题,这个问题的麻烦之处就在于,问题很难复现。

      复现问题:怎么复现问题呢,据说是在操作的时候,横向纵向不停地转屏。最后,传给服务器的数据就错了。也是在这个提示下,曾经出现过一次数据的错乱。但是后来就没有再出现过。很奇怪吧。

    3.1. 解决方案二

      通过几个关键点的操作来确定问题点

    3.2. 降级方案

      一开始就要想好一个降级方案,以备解决不出来。

    4. 解决步骤:

      我从来不相信猜测,除非对程序特别的胸有成竹,或者程序本身特别检查。

      那么,我要解决问题,必须复现问题。我就要打印出操作时的数据,这是解决这个问题的核心思想。当我发现什么时候的什么操作导致问题复现时,怎么解决就有了一个明确的方向。

      所以我要记录步骤。

    4.1.解决尝试一

    4.1.1. 打印数据

      数据部分有两个,一个是现有数据,一个是修改的数据。我打印出这两个数组即可。

    4.1.2. 记录步骤

      不在此详述...

      

      

      

      

  • 相关阅读:
    deepin v20装机后python配置
    lotus命令详解
    Lotus 客户端命令集合
    在Windows 7或Server 2008 R2上安装更新时提示0x80092004错误的解决方案
    Delphi:如何将列表作为参数传递给SQL查询?
    delphi Ado 执行带有冒号字符语句的处理。
    SQLite与Delphi XE4 (一)
    delphi在TMemo中实现高亮文字
    Delphi中用beep函数拼出节奏和歌曲
    在oracle中插入数据报错:ORA-00984列在此处不允许
  • 原文地址:https://www.cnblogs.com/SimonGao/p/5081883.html
Copyright © 2020-2023  润新知