Java故障排查技术
故障调查技术应用技巧
在决定如何解决问题之前,始终要寻找问题的根本原因。专注于表面的问题可能会掩盖根本问题。
在运行时抛出的异常本身并不总是问题所在。它可能是真正问题的一个后果。始终要寻找根本原因。
没有一种调查技术适用于每一种故障排除情况。请记住,对于大多数情况,你必须应用多种调查技术的组合。
你对所有的调查技巧了解得越多,你就越容易找到合适的组合来快速解决问题。
在大多数情况下,复杂的调查技术会有所帮助,但是请记住,有时在正确的地方使用简单的日志行可以创造奇迹。
有时睡个好觉比任何故障排除技术都要好。
前言
软件开发人员实际上是以什么为生的?"实施软件 "是对这个问题最常见的回答。但这是什么意思呢?它只是写代码吗?嗯,不是。虽然代码确实是软件开发人员所做的一切的结果,但编写代码的活动只占软件开发人员工作时间的一小部分。软件开发人员的大部分时间实际上是用来设计解决方案,阅读现有的代码,了解它是如何执行的,并学习新的东西。编写代码是软件开发人员成功完成所有这些任务的结果。因此,一个程序员的大部分时间是在阅读现有的解决方案,而不是有效地编写新功能。
清洁编码作为一个主题,归根结底有相同的目的:教开发者如何写出更容易阅读的解决方案。开发人员意识到,从一开始就写一个更容易阅读的解决方案比以后花时间去理解它更有效率。但我们需要诚实地承认,并不是所有的解决方案都能干净利落地被快速理解。我们总是会面临这样的场景:我们需要了解某些外部能力的执行情况。
现实情况是,软件开发人员花了很多时间来调查应用程序如何工作。他们阅读和检查应用程序代码库中的代码以及相关的依赖关系,以弄清楚为什么有些东西不能以他们期望的方式工作。 开发人员有时阅读代码只是为了了解或更好地理解一个特定的依赖关系。在许多情况下,阅读代码是不够的,你必须找到其他(有时更复杂)的方法来弄清楚你的应用程序做什么。
为了理解环境如何影响你的应用程序或 Java 应用程序所运行的 JVM 实例,你可以结合使用分析、调试和日志调查。如果你很清楚自己的选择以及如何从中做出选择,你将节省宝贵的时间。请记住,这是开发人员花费大部分时间所做的事情。这种开发活动可能是非常有益的。