遇到bug了?

作为程序员,会面对各种各样的bug,我们在编写代码的时候,也是生产bug的过程。在公司总会遇到老同事留下的代码,这些代码出现问题了该怎么办?最常见的想法就是,

老同事怎么考虑这么不周到,这些场景都没有考虑到。

我X!这块业务逻辑我都不知道什么鬼,怎么改?

看了代码,根本看不懂,老同事写的代码看不懂!连注释都没有(所以写代码的时候,要想着,接手我们代码的人,是知道我们住址和联系方式的,甚至知道我们常走的路)

。。。。。。。。

面对问题:

该抱怨就抱怨吧,反正问题还在,并不会因为你抱怨而减少。所以抱怨是解决不了问题的。虽然大家都知道,但难免还是会抱怨。

然后就让我们解决问题吧,首先,要确认一点:我们能拿工资的原因就是我们能解决问题。相信问题是会解决的。(它不死,我死!)

既然要面对问题,面对一堆代码(没有注释,有魔法数字,一些特殊数字,根本不知道它代表什么意义),

遇到的问题有很多种,我遇到的问题是:能重现的问题和不能重现的问题(由于并发,网络等原因导致)

能得重现问题:

第一步:重现问题,查看报错日志。

  良好的报错日志,能让我们快速地定位和解决问题。通过日志能定位到出现错误的代码区。

  如果没有报错,业务表现的错误怎么办?往下走!

第二步:找到对应接口,通过对应接口找到相应的数据库表。

    业务比较复杂,但涉及的表一般不会太多。(当然如果业务过于复杂就不一样了。)找到问题数据,看到数据,整理数据关系,逐步回溯到业务代码。

第三步:看看数据有没有问题。

    

第四步:模拟数据,“走通”代码逻辑。最后你会发现,解决这个问题需要做的东西并不多。反而找问题的时间还比较长。

结语:

  遇到问题,虽然有各种负面心态,我们应该尽量减少。面对问题,我们能体现价值的地方就是解决问题。解决问题是我们存在的价值。我们平时学习技术不就是为了更快地解决问题吗?问题解决了,轻松感和成就感。你会发现这是值得的。

面对bug和困难的心态的更多相关文章

  1. 说说分析bug的一些心得

    bug已经成为程序员工作中的一部分,作为从事嵌入式软件开发已有三年的我,经手的bug也不少了.先说说自己对于bug的心态变化吧,刚开始工作的时候,自己还是很喜欢bug的.那时,自己是负责维护别人的代码 ...

  2. 一个历时五天的 Bug

    一个程序员在没有成长成为架构师之前,几乎都要跟 Bug为伴,程序员有很多时间都是花在了查找各种 Bug上. 我印象深刻的一个Bug, 是一个服务器网络框架无锁队列的 Bug .那个 Bug 连续查找了 ...

  3. 程序员遇到Bug时的25个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  4. 程序员遇到Bug时的30个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  5. 遇到bug我会怎么做

    我今天遇到一个问题,ztree显示数据,本来这个功能是没有问题的,但是当我新加入了几个页面筛选条件时,将集合传入ztree ,页面缺一直没显示出来,弄了两个小时,代码我都仔细排查了一次,发现没有问题, ...

  6. 实战小项目BUG纪录

    果然,作为程序员最可爱的女朋友就是各种BUG,解决了你的开发能力和开发效率就会上升到一个新的层次.反之,在你面对BUG的时候,如果轻易的就放弃了,你也就失去了一次自我成长的机会.学习就是这样的,我们有 ...

  7. 程序员奇谈之我写的程序不可能有bug篇

    程序员在普通人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug. 有不少的新 ...

  8. bug管理工具为开发者工作带来哪些改变?

    BUG管理工具的主要功能是对软件开发测试过程中出现的BUG进行跟踪管理,提高开发者的工作效率与工作质量. 在实际工作中,如果没有bug管理工具的帮助,就可能会出现如下一系列的影响: 1.软件测试人员将 ...

  9. 谈初学Java历程

    学习Java一个月左右,本来很早就想好好静下心来写一点东西了.但由于不想手写,文档写了不知道放在哪好,所以一直拖着.最近注册了博客园,还是挺方便的. 即将大学毕业了,则面临了所以大学生所面临的问题,就 ...

随机推荐

  1. UITabBarController 升级定制

    UITabBarController 定制 特点 用法 1.准备工作: 加入你的相关图片,放入了Assets.xcassets; 导入Categroy文件夹(这个里面的文件,在这里不详细说明了,有疑问 ...

  2. Undefined symbols for architecture arm64解决方案

    在iOS开发中经常遇到的一个错误是Undefined symbols for architecture arm64,这个错误表示工程某些地方不支持arm64指令集.那我们应该怎么解决这个问题了?我们不 ...

  3. [译]理解Javascript的异步等待

    原文链接: https://ponyfoo.com/articles/understanding-javascript-async-await 作者: Nicolás Bevacqua 目前async ...

  4. mysql 常用自定义函数解析

    -- /* -- * 用于获取一记录数据,根据传入的分隔字符delim,索引位置pos,返回相对应的value -- * SELECT Json_getKeyValue({"A": ...

  5. CSS3:backgroud-size和background-origin的使用方法

    backgroud-size CSS3以前,背景图像大小由图像的实际大小决定,background-size指定背景图像的大小. 你可以指定像素或百分比大小,你指定的大小是相对于父元素的宽度和高度的百 ...

  6. Linux 查看命令源码

    一.简介 有时候想看看ls.cat.more等命令的源代码,本文介绍相应查看方法. 二.方法 参考: http://blog.csdn.net/silentpebble/article/details ...

  7. WinCE项目应用之车载导航

    WinCE车载导航系统是我过去几年投入精力比较多的一个项目.我的主要工作内容是BSP的移植.硬件模块的调试和WinCE系统的深度定制.如TDA7415驱动.TDA7415均衡器.慧翰车载蓝牙模块.华为 ...

  8. [LeetCode] Minimum Moves to Equal Array Elements II 最少移动次数使数组元素相等之二

    Given a non-empty integer array, find the minimum number of moves required to make all array element ...

  9. FineUI(开源版)v6.0中FState服务器端验证的实现原理

    前言 1. FineUI(开源版)是完整开源,最早发起于 2008-04,下载全部源代码:http://fineui.codeplex.com/ 2. 你可以通过捐赠作者来支持FineUI(开源版)的 ...

  10. QinQ

    7.3.1 QinQ技术诞生的背景 --<华为交换机学习指南> QinQ最初主要是为扩展VLAN ID空间而产生的,但随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有 ...