While you should always strive to eliminate bugs, they occur in just about every software project for a variety of reasons. So, how should you respond when your software stops behaving as you'd expect? What process can you follow to report a bug and fix it? Would you rather go after the symptoms of buggy software or understand and fix its root cause for good? Debugging, when done right, is a scientific process driven by tests that helps you understand a bug and prevent it from recurring.
The course will take you on a journey from a bug report through a myriad of tools, including a Java debugger, VisualVM, and JConsole.
You'll use a Java debugger to investigate and examine a running JVM until you have found the cause of a complex bug. You'll learn how to set conditional breakpoints, progress and reverse the flow of execution, inspect changing values, and test theories to solve the mystery of a hard to understand bug.
You'll use VisualVM to respond to a report about a slow application and identify the hot spot in your code which is slowing it down. You'll use JConsole to inspect JMX metrics from a Spring application so you can examine a running production application and even make its reporting more chatty without restarting it.
Have you ever investigated an issue in your code by using print statements? Well, you're going to learn how to curb that practice and achieve a similar but more effective outcome by using the SLF4J Logging Facade and setting meaningful log levels.
Meet Your Teacher: Raf Gemmail
I am a proven technical leader, Agile coach, solutions architect, and full-stack polyglot with a Java engineering core. I have an outcome and a customer-centric mindset, with a history of helping both small and well-known organizations to design and deliver high-impact and data-intensive solutions.
I’ve been building software my whole life and have been fortunate enough to work with organizations such as the BBC and Booking.com. I have led and coached many developers on their journeys to becoming responsible owners of their code, who celebrate bugs as learning opportunities, and make squashing them part of a process towards iteratively delivering a high-quality product. The discovery of a bug is an opportunity to improve. I look forward to helping you get started as well.