Practical Debugging at Scale Part 12: Isolating Assumptions

preview_player
Показать описание
How do we find out where the bug is? How do we know what assumptions we make about the bug and about the behavior of the application? How do we narrow them down and validate them?
All of these are crucial parts of our debugging journey.

This video is a part of the second module covering debugging theory. Here we discuss the process that we need to follow when running into a bug. Ever spent all night on a bug only to find out it was a "stupid" thing that you missed in the beginning? We all have! There's a systematic process for tracking an issue that reduces the chance of this recurring.

By leveraging these tools and techniques you will gain access to the secret weapon of senior developers and consultants. This will make you a better developer and a happier one. Stop treating debugging like throwing out the garbage and treat it as a skill that you should improve.

In the following modules we cover:

* Debugging Theory - Ever spent all night on a bug only to find out it was a "stupid" thing that you missed in the beginning? We all have! There's a systematic process for tracking an issue that reduces the chance of this recurring.

* Tooling - Is your debugging session limited to the IDE? What do you do when there's a dead end or the problem only happens in the release version of your application? That's where external tooling can take you to the next level as a developer.

* Code - This isn't a course on coding. You should know how to do that before you start. But how do you write code that's easier to debug? Code that fails in predictable ways. Code whose failures are easy to understand and track. Code that doesn't drain your bank account because it overuses cloud resources.

* Kubernetes - Not only is Kubernetes hostile to debugging, it does that on a scale that creates its own set of problems. Add the complexity of production debugging to the mix and we've got a new set of problems.

* Serverless - Kubernetes has an ephemeral state problem, serverless takes that problem to a completely new level.

* Fullstack - As we chase a bug we need to venture outside our comfort zone. To tiers and tools we might not be as comfortable with. In this module we'll discuss debugging the frontend and the database to create a tongs motion around the bug.

* Observability - Production debugging is really about observability. Yet so many of us leave these tools to the DevOps team. In this module we'll cover these tools from a developer perspective.

The full course includes more than 5 hours of video material.

00:00 Introduction
00:34 Danger: Wrong Assumptions
01:00 Something doesn't make sense
02:02 Double Verification
03:06 Use Tools
03:57 Defining the Assumptions
04:51 Symptom, Root Cause and Bug
05:32 Narrow vs Wide Perimeter
06:23 Tracking the Bug
07:39 The Right Direction
08:47 Assumption Jump
09:15 Watchpoints
10:01 Safe Languages
10:38 The Easy Fix Trap
11:31 Wrong vs Correct Assumption
11:55 Scope to Next Abstraction
13:01 Final Word
Рекомендации по теме
Комментарии
Автор

This is a gem of a playlist. Really loved the way you explained the topics with examples. This is something I will revisit multiple times during my career. Thank you for making this. :)

sudosai