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

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

【场景】

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

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

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

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

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

【场景分析】

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

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

相关文章
|
JSON JavaScript 前端开发
从零开始教会你Axios
从零开始教会你Axios
201 0
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
10月前
|
数据可视化 数据处理
CUT&Tag 数据处理和分析教程(8)
CUT&Tag 数据处理和分析教程(8)
706 12
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
470 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
数据采集 DataWorks 大数据
开发者评测:DataWorks — 数据处理与分析的最佳实践与体验
阿里云DataWorks是一款集成化的大数据开发治理平台,支持从数据导入、清洗、分析到报告生成的全流程自动化。通过用户画像分析实践,验证了其高效的数据处理能力。DataWorks在电商和广告数据处理中表现出色,提供了强大的任务调度、数据质量监控和团队协作功能。相比其他工具,DataWorks易用性高,与阿里云服务集成紧密,但在API支持和成本优化方面有待提升。总体而言,DataWorks为企业提供了强有力的数据开发和治理支持,尤其适合有阿里云生态需求的团队。
898 17
|
消息中间件 Java Kafka
消息传递新纪元:探索RabbitMQ、RocketMQ和Kafka的魅力所在
【8月更文挑战第29天】这段内容介绍了在分布式系统中起到异步通信与解耦作用的消息队列,并详细探讨了三种流行的消息队列产品:RabbitMQ、RocketMQ 和 Kafka。其中,RabbitMQ 是一个基于 AMQP 协议的开源消息队列系统,支持多种消息模型;RocketMQ 则是由阿里巴巴开源的具备高性能、高可用性和高可靠性的分布式消息队列,支持事务消息等多种特性;而 Kafka 作为一个由 LinkedIn 开源的分布式流处理平台,以高吞吐量和良好的可扩展性著称。此外,还提供了使用这三种消息队列发送和接收消息的代码示例。总之,这三种消息队列各有优势,适用于不同的业务场景。
269 3
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
缓存
响应状态码
响应状态码
358 1
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
编解码 Go 图形学
Adobe Premiere Pro:掌控视频剪辑的魔法之手,让你的创作腾飞!
Adobe Premiere Pro:掌控视频剪辑的魔法之手,让你的创作腾飞!
477 2