Reduce Nesting
Deep nesting hides bugs in the branches you didn't read.
- Guard clauses — handle the invalid/edge cases first and return early. The happy path drops to the left margin.
- Invert conditions —
if (!valid) return;instead of wrapping the whole body inif (valid) {...}. - Extract — a nested block doing one thing becomes a named function.
- Replace flag-then-branch — return the result directly instead of setting a variable to return later. Target: no function deeper than 2-3 levels. If you still need more, the function is doing too much — split it.