Debugging React Applications
What do you call someone who writes buggy code?
A developer.
Cecelia Martinez
Community Lead, Replay.io
⭐️ GitHub Stars Program
🏳️🌈 Out in Tech Atlanta Chapter Head
👩🏽💻 Women Who Code Front End Volunteer
✅ Unofficial Cypress Ambassador
@ceceliacreates
Weekly Office Hours at replay.io/youtube
Get Started
- Respect The Code (renderatl.com/thecode)
- Breaks
- Questions
- Pre-requisites
Who here has debugged in the past week? ✋
Developers spend up to half their time debugging and maintaining software.
console.log
debugger
DevTools
breakpoint
border:1px solid red
//
The right process, tools, and experience can make debugging better.
Really!
Process 🔎
What does your debugging process look like?
Process refers to the methodology used to approach the problem.
Activity
-
What steps did you follow the last time you debugged?
-
How do you decide where to start debugging?
What?
Why?
How?
What is the problem?
Why is it broken?
How did this happen?
What is the problem?
- Reproducible example
- Expected behavior
- Defined problem
Why is it broken?
- Multiple hypotheses
- Isolate the issue
- Trace the root cause
How did this happen?
- Could a test have caught this?
- Using framework correctly?
- Other areas of codebase with same implementation?
Find a process that works for you.
Break
Tools 🧰
Tools are what you use to execute your process.
Developer Tools
- Browser or IDE
- Inspecting (elements, state, values)
- Evaluating (execution, control flow, performance)
Activity
React DevTools
- Browser extension or package for non-browser-based applications
- View components and relationships
- View/edit props and state
- Profile render performance
- https://react-devtools-tutorial.vercel.app
Redux DevTools
- Inspect dispatches, actions, state diffs
- Also works for NgRX, Mobx, etc.
Replay.io
- Record browser session or automated tests
- React and Redux (beta) DevTools built in for debugging
- Retroactively add console logs
- Add comments
- Code heat maps
Break
Experience 🐞
Maybe the real treasure was the bugs we fixed along the way ✨
Jenn Creighton, @gurlcode
Sr. Software Engineer @ Netflix
Host of @single_threaded podcast
-
Reinforce process
-
Identify patterns
State & Hooks
- local vs global state updates
- Race conditions
- caused by competing async functionality
- View network request waterfall
- Blog: Handling API request race conditions in React
Activity
- Buggy replay
- https://github.com/Replayio/hasreplay
- replayable.dev
- BYOB (Bring Your Own Bug)
Learn More
Thank you!
Debugging React Applications Workshop
By Cecelia Martinez
Debugging React Applications Workshop
- 7,652