What is a code review actually for?
Not primarily for catching bugs — which is the assumption most reviewers bring and the reason so many reviews are unsatisfying for everyone involved.
What the evidence and practice suggest reviews are best at:
Spreading knowledge. After a review, at least two people understand that change. This is the single most durable benefit and the one that survives when someone leaves.
Maintaining consistency. Keeping the codebase coherent in structure and idiom, so it reads as though written by one careful person rather than twelve.
Catching design problems — the wrong abstraction, the missing case, the approach that will not extend. These are far harder to find later than a null check, and far cheaper to fix now.
Improving readability for the next reader, who is frequently the author in six months.
Creating accountability, which changes how people write before they submit — the anticipation effect is real and probably underrated.
Where it is genuinely weak: subtle logic errors, concurrency bugs and performance problems are poorly caught by reading. Tests, types, static analysis and profiling find those far more reliably.
What makes reviews work:
Small changes. Review quality collapses with size. A hundred-line diff gets scrutiny; a two-thousand-line diff gets "looks good to me". Splitting work into reviewable pieces is the highest-leverage change available.
Automate the mechanical. Formatting, linting and style should never be discussed by humans. If a reviewer is commenting on spacing, the tooling is missing.
Distinguish blocking from optional. Prefixing non-blocking suggestions — "nit:" is the common convention — prevents small preferences reading as demands.
Ask rather than assert. "What happens if this is empty?" invites reasoning; "this is wrong" invites defence.
Review promptly. A pull request sitting for three days blocks the author and grows conflicts.
Approve when it is better, not when it is perfect. Reviews that hold changes hostage to the reviewer's preferred design are the most common way the practice turns corrosive.