Debug

  1. 出现问题Debug 的时候,不要上来就动手调试,要想清楚你要实现的是什么功能,然后实际运行的结果为什么和你运行的不同,然后去有方式有方法的去分析和处理
    分析重于瞎找,设计重于实现

  2. 二分法去定位问题

  3. 找到会引起问题的组件和因子,一点点的分析处理,也就是找出它的上下文

  4. 不要先入为入,以为觉得这里是对的,不要以为觉得,要去一点点的分析和排查
    如Go flag 中的方法 以为是flag.StringVal,其实是 flag.StringVar

  5. 如果紧急且严重的问题,自己半个小时内解决不了的,一定要抛出来寻求帮助

  6. 程序实际运行结果 与 预期运行结果进行对比,然后去分析代码里是不是有些 case 没有考虑到 =》 思维完整性

  7. 如果一个问题,20分钟或者更久调试没有符合预期,可以站起来想一下,看一看是不是上下游的关系没有理解清楚,这个时候就不要瞎调试了

  8. 由公共domain 分支代码未发版导致:改代码的时候有的时候涉及到公共的代码的时候,比如domain 中的代码,虽然其他服务没有改动,但是涉及到相应的服务也是需要重启的,自己遇到修改公共domain model 中的定义,排查了一个小时一直没有找到问题,后来发现另一个公共domain model 的服务需要重启,所以参照第7点,遇到问题了,没有冷静的分析,遇到问题,怎么才能做到冷静的分析呢?需要从那个环境中抽离出来,需要训练的

  9. 第8点中的,后续又遇到测试环境两个集群的配置,快速发布,只发布了一个集群,另外一个集群中的代码一直没有生效。所以发布的时候要检查如果是多集群,是否每个集群的代码都发布好了

  10. 与外部调试,数据条数对不上,先查询自己服务内日志,统计服务内日志情况,如果确信自己条数对的上的话,让对接方检查下自己的数据和情况。如果实在想不出来,事情放哪里,过一段时间再仔细看下

  11. 对接api和接口的时候,不要一上来就拿代码去调用,可以使用postman调用一下,如果postman如果调用不通,则是对方接口有问题,如果postman ok的情况下,再去使用代码进行调试,这个时候调用不通,大概率是自己代码哪里写的有问题了

  12. 解决不符合预期的问题的时候还是有点着急,没有从那个场景里面抽出来去整体去思考问题

  13. 遇到不会的东西,使用 搜索的时候想要一下子找到问题的答案,这种心态是不正确的,要去分析你要解决什么问题哈,要去分析,去思考,慢一点没关系的

  14. 提升自己的自信,多写单元测试,不要害怕失败,不要害怕冲突,冷静下来去面对呀

  15. 遇到不符合预期的时候,要多思考下,从上下文中去看下,冷静分析,然后打印日志去判断,不要着急

  16. 如果遇到本地环境和测试环境或者线上环境不一致的时候,去仔细排查就行,不要嘴硬,90%是自己代码的问题

posted @ 2021-02-22 10:29  Paualf  阅读(221)  评论(0编辑  收藏  举报