当你无法发现问题所在时,不要简单地把代码或者数据还原

简介: 这几天有一位同事需要做与我一样的功能,而这个功能是我已经开发好了的,他只需直接把我的代码拿去修改就可以。结果,我的代码可以正常运行,他的代码在开启服务之后,控制台就不断有日志输出,开发环境进入了死机状态。

【场景】

这几天有一位同事需要做与我一样的功能,而这个功能是我已经开发好了的,他只需直接把我的代码拿去修改就可以。结果,我的代码可以正常运行,他的代码在开启服务之后,控制台就不断有日志输出,开发环境进入了死机状态。

他花了很长的时间去寻找问题的来源,但一直没有找到。之后,他跟我描述了他的问题。我提议帮他看看,然而得到他的回答是,他已经将代码还原到上一个版本了。也就是说,他放弃了寻找问题的来源。换成另一种比较文艺的描述,他放弃了学习进步的机会。

作为同事,同时又是同一开发组的战友,我不能看着他这么堕落。我直言不讳地跟他说,在开发中遇到问题时,不能逃避,必须面对,必须解决,因为你不面对不解决,同一的问题以另外一种方式出现在你面前。现在,你有足够的时间去慢慢琢磨问题所在,而到了正式开发的阶段,留给你解决问题的时间不会太多。到那时,你就只能通过加班的方式争取更多的时间来解决问题。

果不其然,没过多久,他又要开发类似功能的功能。而结果又跟之前的一样,又是大量日志输出,又是开发环境死机。比之前好的一点是,他听进去了我上次的建议,没有逃避问题。在寻找问题的解决办法未果之后,他让我与他一起找问题的根源。

结局很美好,我们找到了问题的根源所在,同时也对对象的创建有了新的认识。而对对象创建的有新的认识,就是我们这次解决问题得到的收获。

【场景分析】

程序的问题与其他问题不一样的地方在于,程序的问题就像一个坑,你不去处理它,它就一直在那里,它并不会随着时间的推移而消失。而长时间不去解决的程序问题又像蚁穴,正所谓千里之堤毁于蚁穴,开发程序有几年经验的应该有深刻的体会。

总结起来,程序员对于问题的态度只有一个,勇敢面对。

相关文章
利用dump文件反向定位崩溃位置的体会
利用dump文件反向定位崩溃位置的体会
|
1月前
|
Go 文件存储 iOS开发
LabVIEW崩溃后所产生的错误日志文件的位置
LabVIEW崩溃后所产生的错误日志文件的位置
31 0
|
7月前
|
SQL 关系型数据库 数据库
记一次程序 Bug 导致数据删除的恢复过程
使用RDS、DMS进行数据恢复实践
961 0
|
8月前
|
前端开发
一个 ExpressionChangedAfterItHasBeenCheckedError 错误的解决过程
一个 ExpressionChangedAfterItHasBeenCheckedError 错误的解决过程
VS2005利用pdb加源码定位崩溃所在代码行
VS2005利用pdb加源码定位崩溃所在代码行
|
SQL BI 数据库
记一次bug分析定位过程
其实很多时候,我们在测试过程中发现的很多bug,并不是由于开发人员编码能力不好,或者粗心大意造成,而是在项目开发实施过程中,没有遵循一些必要的项目流程,没有充分认识到质量的重要性;如果能做好这方面的工作,关注流程,而不是喊口号,人人重视质量,人人为结果负责,那么,会有很多问题、不只是bug,都将“被扼杀在摇篮里”......
记一次bug分析定位过程
Unicorn反混淆:恢复被OLLVM保护的程序(一)
Unicorn反混淆:恢复被OLLVM保护的程序(一)
Unicorn反混淆:恢复被OLLVM保护的程序(一)
|
存储 关系型数据库 MySQL
你的数据库真的清除干净了嘛?看完这篇文章你会若有所思!!
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合 有时候MySQL不能完全卸载,这时候必须通过一些途径删除掉注册表和一些残余的文件,然后才能重新安装才可以成功!
你的数据库真的清除干净了嘛?看完这篇文章你会若有所思!!
R代码忘记保存,系统崩溃了怎么办?
跑程序时电脑突然崩溃,程序被强制中断导致代码不见了怎么办? 这些糟心的情况想必每个打工人都不想经历,偏偏我就是那个倒霉蛋,今早打开电脑发现昨晚写的代码忘记保存,心态崩到想当场飙眼泪,冷静下来之后开始寻找解决方案
1267 0
R代码忘记保存,系统崩溃了怎么办?
|
存储 缓存 Java
崩溃堆栈还原技术大揭秘
岳鹰全景监控平台,具备分布式的符号化系统,独有的C++崩溃堆栈还原,完美支持inline函数、行号还原。这样强大的系统是如何涉及到呢?本文为您揭秘!
1399 0
崩溃堆栈还原技术大揭秘