r/learnprogramming • u/El_Cato_Crande • 1d ago
Code Review PR Reviews
Been getting tasked with reviewing PRs more and more at work. Happy to have that responsibility and grow in that fashion. However, i'm also nervous about doing it properly.
Atm i have a process of sorts to work through things. Understand the change being made (filtering out a column value, combining datasets, manipulation etc). Approach to the change (drop nulls, join v union etc, creating an additional column from scratch or something). Execution of the change. Was it overly verbose and wasteful. Were certain downstream effects not properly accounted for etc
If it all looks good to me. Then I approve. Sometimes I might meet with the programmer to ask questions based on notes as I go through the PR. Other times I don't as it's not needed and I get things clearly.
Would like to know what approach some of you use? Why/how you it? Do you have different tactics for different situations?
Any advice/tips will be appreciated. Just looking to improve and get better at this process as I think it'll also help me get a better understanding of system design and large scale architecture which is something I want/need to get better at
2
u/xao_spaces 1d ago
Thanks for asking this question, I’m a junior and I’ve been tasked with the same.
2
u/OkOcelot6725 1d ago
For data pipeline PRs, a short checklist of the things that break quietly on merge helps more than a general process:- Joins: could the join key be duplicated or null on either side? Row counts before and after should match what you expect. A fan-out join is the classic silent bug.- Schema: any column renamed, dropped or changed type that a downstream job reads?- Reruns: if the job runs twice, or backfills old dates, does it overwrite cleanly or double-count?- Filters: what happens to rows the new filter drops, and does anyone downstream rely on them?- Evidence: ask the author to paste a before/after row count or a small sample diff in the PR description. If they can't, that's a useful signal in itself.Keep it as a PR template so the author fills it in before you review. Then your attention goes to the judgment calls instead of rediscovering the list each time.For data pipeline PRs, a short checklist of the things that break quietly on merge helps more than a general process:
- Joins: could the join key be duplicated or null on either side? Row counts before and after should match what you expect. A fan-out join is the classic silent bug.
- Schema: any column renamed, dropped or changed type that a downstream job reads?
- Reruns: if the job runs twice, or backfills old dates, does it overwrite cleanly or double-count?
- Filters: what happens to rows the new filter drops, and does anyone downstream rely on them?
- Evidence: ask the author to paste a before/after row count or a small sample diff in the PR description. If they can't, that's a useful signal in itself.
Keep it as a PR template so th
1
u/JohnVonachen 1d ago
Make a checklist and go through it for every page or whatever. Do you have some kind of static analysis? you can have a config file that checks for each thing on your list. You can make an analysis tool that will use regular expressions to help you. You can tweek it as you go.
1
u/iOWIIPZJ51ucF2H 22h ago
my rule of thumb is the 2-comment rule: if a pr comment has more than two back-and-forths, stop typing and grab a 5-min huddle. text debates on prs waste hours, while code comments should strictly be for quick nits or obvious bugs.
1
4
u/initcommit 1d ago
This question is kindof general and vague which makes it hard to answer. Some of the most basic questions about the PRs are:
"does it merge cleanly?"
"does it pass CI?"
From your descriptions it sounds like you're dealing with SQL code / stored procedures / DB migrations being committed to your repo? Are there more specific details you can provide as to what is causing the nerves?
In general if you have a good understanding of the systems that you are overseeing, and the tasks that your developers are working on, and workflows/best practices at your organization then you should have most of the context you need to review it and make the right decision to either merge it or request changes.