细细想来,如果说我真的是在做软件开发,那么我就有接近十年的经验。但实际上,并没有写出一款完美软件。软件在开发和测试的时候,总是表现良好。
但在部署和用户使用过程中,则总会遇到各种问题。软件的 bug 就这样,最好的 bug 就是直接无法执行,其次就是能简单复现,最坑爹就是时而出现,时而不出现,相当于我们完全找不到他的触发条件。
这就像一个幽灵一样,用户说有问题,确实遇到问题。但是我们重现不了,而事实上,用户也重现不了。直到下一次出现,然后就又来一次。这个就很坑爹。
GSAman在重写了回撤逻辑后,我做了更为稳健的执行逻辑,确保数据安全可靠。从设计上来说,我觉得是完全没问题的。但是就存在一个用户会遇到软件突然就卡死,而我们找不到原因。
今天,还是找到原因了,尽管这个已经过去半年。比如,我们这个时候要“Fork A Transcript”,也就是复制一个转录本
如果是这样,那么肯定是一切正常的。因为我要复制一个转录本,那我肯定右键是在一个转录本上面点击弹出菜单来复制。
但是呢,如果你不小心,或者说你就是故意不在某个转录本上面点击弹出菜单,然后就是要 Fork 一下。
那么毫无疑问,其实就是在 fork 空气。但是呢,我之前写这些响应的时候,没想到这类情况会发生。同时其实绝大多数人肯定也不会去 fork 空气。但是呢,操作操作,总会遇到这类情况,于是就出现幽灵报错。
今天我看了下一个用户提交的报错文档,思索了下,估计也就这个可能的。测试后对整个项目进行代码优化。Emmm,感觉现在稳健多了。
写在最后
路漫漫其修远兮,吾将上下而求索。
一个计划两天整完的项目,现在数来,都快两年了。