工作中如果遇见XX系统出现问题了,我们的第一反应是什么?你的内心活动肯定是:是自己的锅和坑吗?连蒙带猜,赶紧看日志,有错误日志还好,但是没有错误日志啊?参数的问题?窝草,方法的入参忘了打印了,添加打印日志方法,发版,看日志……,这样有点太Low了,小哥哥下一篇给你说一下日志系统,这篇先说解决问题的套路,我相信干什么事情都有套路的,比如学驾照,学英语,撩妹等。

什么是问题?

上下文 -- 和问题相关的场景,指一组已经是明确已知的,关于问题的条件的描述(比如订单-产品-支付-库存肯定有关系)。

目标 -- 指关于构成问题的结论的明确的描述(让系统更流畅,更高速的,更稳定的运行)。

障碍 -- 指问题的正确解决方法不是显而易见的,必须通过一定的思维活动,才能找到答案。

良好的定义问题是解决问题的关键步骤。

定义问题就是鉴别期望和现状的差异。有如下几个关键点:

首要的是,收集整理关于现状的可信的信息,而不要假设已经拥有完备的可信信息;

不暗示倾向于某种原因或者解决方法;

只陈述现状和期望的状态;

在解决问题的过程中,问题的定义可能(有必要)会不断的改进或者转换形式。

把问题描述理解清楚,不要掩盖问题,把问题公开化,透明化,解决完问题最好自己再总结一下(二狗子,高中时候的纠错本你给忘了)。

心态

静心:在定位问题之前,最好先安静下来,摒除杂念。放下自己的身份(项目经理、开发人员),以解决当前系统的问题为中心。静心之后,将问题现象在脑中过一遍,弄清问题。

问题解决者不轻信,不盲从

不确定定问题的时候,不要说大概是什么问题, 绝不因为一句“应该是对的”,“大概没有变化”,“我昨天没发版,之前都是好的”,而抛弃一个怀疑的点。

大局观:不要尽早的陷入细节

实际上,在整个问题定位和解决的过程中,都应该尽量在头脑中对整个系统的映像以及当前位置保持清晰的认知。这样有助于前后、上下联系,在更高更广阔的空间中发现问题。在解决问题的时候提醒自己:我现在处于一个什么位置?如果不启动调试环境我能不能解决掉这个问题?

预判断,然后验证:

让我们一起debug,注意environment(dev,qa), zone,region,contextPath等,尽量将日志、调试、Postman等都用作验证问题的工具——首先对问题的原因做预判断(猜测),然后确定该原因会导致什么现象,然后验证该现象(日志等)。预判断比验证更应被关注。

当很难预判断问题位置时,可以采用排除法:每次排除系统范围的一半左右,逐步将包围圈缩小到问题原因本身。应注意:排除的过程中,同样要注意验证排除的是否正确,即:排除、验证、排除、验证……

关注日志

日志一定要看明白NumberFormatException: For input string,NumberFormatException: Value out of range,Duplicate entry,Data truncation: Data too long for column……,很多问题解决过程中其实打开日志文件就能马上得到结论,但是开发人员宁可自己猜也不愿意动手打开日志,那么日志该怎么打印?留个悬念,下篇说。

工具

工具是让人用的,善于借助监控和运维工具排查问题,会有一些童鞋说,我压根就没权限看到这些东西,springbootadmin,zipkin,log history,zabbix等,记住我们是解决问题的,没有权限也是问题,我们要去解决。

这些大致是一些常用的解决问题的套路,欢迎指正。说了这么多,全靠实战。就像看了好多《如何脱单》一样,扎心了……,最近时不时的有点焦虑,我觉得解决焦虑的最好办法就是看书,学习,运动,做家务等,不要让自己闲下来,看下图!!!愿代码是你的“柳飘飘”,你就是是“尹天仇”!

java学徒 套路,解决问题的一般套路相关推荐

  1. linux 内存溢出排查_记一次JAVA 线上故障排查完整套路

    JAVA线上故障排查全套路 线上故障主要会包括cpu.磁盘.内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍.同时例如jstack.jmap等工具也 ...

  2. 【深入理解JVM】JAVA线上故障排查全套路

    线上故障主要会包括cpu.磁盘.内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍.同时例如jstack.jmap等工具也是不囿于一个方面的问题的,基 ...

  3. 所以一切都是有套路的,按照套路出牌是最合适的方式。

    1测试中行B2B 支付和查询接口 2测试招行扩容的3台前置机是否可用 总体很低原因如下: (1)测试某一个接口,有两台准生产服务器可以访问,我只需要在一台服务器上测试即可,可为什么,要偏偏处理两台机器 ...

  4. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用java实现程序解决问题。

    一丶中国有句俗语叫"三天打鱼两天晒网".某人从2010年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是" ...

  5. Java初学者快速上手之实战“套路”

    很多初学者刚开始学编程时,上来就只想着编码!编码!!编码!!! 但你知道什么是编程吗? 要知道:编码≠编程 今天就为大家介绍一种快速上手的编程套路,在套路的基础上编码有如神助! 学过Java语法的童鞋 ...

  6. JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC 一条龙!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:fredal https://fredal.xin/java ...

  7. JAVA 线上故障排查完整套路!牛掰!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源丨8rr.co/kV3R 线上故障主要会包括 CPU.磁盘.内 ...

  8. 从 CPU、磁盘、内存、网络、GC 一条龙!JAVA 线上故障排查完整套路

    线上故障主要会包括cpu.磁盘.内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍.同时例如jstack.jmap等工具也是不囿于一个方面的问题的,基 ...

  9. java gc日志乱码_6000+字,30+张图。JAVA线上故障排查全套路总结。

     fredalxin|https://sourl.cn/duWZhd 线上故障主要会包括 cpu.磁盘.内存以及 网络 问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次 ...

最新文章

  1. (C++)A+B 输入输出练习VI 每行的第一个数N,表示本行后面有N个数。
  2. Java异常处理总结
  3. 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
  4. Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
  5. memento模式_Java中的Memento设计模式-示例教程
  6. Python学习(五)列表的简单操作
  7. python连接mysql_Python 连接mysql与impala
  8. jmeter html 乱码,jmeter压测学习14-jmeter返回内容中文乱码问题
  9. 法庭智能语音系统_法庭智能语音识别系统_法庭智能语音系统解决方案_深圳市亚讯威视数字技术有限公司...
  10. winform:關於画非客户区
  11. [收藏]DIV中控制超级链接的方法
  12. ipad和iphone切图_如何在iPhone和iPad上使用触控板模式选择文本
  13. CentOS 8: No URLs in mirrorlist error
  14. 微信小程序云开发 操作数据库-新增一条数据
  15. Hibiscus的脑机接口学习周报(2023/1/23~2023/1/29)
  16. 如果去掉若依分离版本浏览器上面的标题和首页的若依管理系统字眼(去若依化四)
  17. 北京航空航天大学 素数(java)
  18. C# vs Java —— 剑客vs刀客 Java vs .NET之飘逸的Java
  19. 计算机系统写字板,什么是电脑写字板 电脑写字板使用方法
  20. AI也有偏见,我们该如何信任它们?

热门文章

  1. UnityShader入门精要-渲染纹理 镜子 玻璃 效果
  2. 以后坚决不养会冬眠的动物叻。。
  3. 唯品会--2018校招AI算法笔试题
  4. 2021唯品会秋招数据开发岗笔试题
  5. 5. STL容器和算法使用
  6. excel自带有vba手册吗_使用VAB打开Excel内置对话框
  7. 用html5来制作个人主页
  8. 51单片机DS1302时钟LCD1602显示(可以按键设置时钟)
  9. AI量化策略会:可以直接上实盘的策略构建方法
  10. 烽火HG680-KB-KA通刷-免拆-卡刷固件(可救砖)