Awesome Code Review
A curated list of tools, articles, books, and any other resource related to code review
Code review is the systematic examination (sometimes referred to as peer review) of computer source code.
Contents
Academic Papers
- An experiment to assess the cost-benefits of code inspections in large scale software development (Porter, Siy, Toman & Votta, 1997) Early paper that tested a range of then-current review techniques including multi-stage review and code-review-via-meeting that found you can get most of the benefit in an offline, single pass, with two reviewers.
- Anywhere, anytime code inspections: using the Web to remove inspection bottlenecks in large-scale software development (Perpich, Perry, Porter, Votta & Wade, 1997) One day in the far future the best way to review code will be on the world wide web.
- Design and Code Inspections to Reduce Errors in Program Development (Fagan, 2002) Using a more formal process, particularly with defined roles for each participant and drive a big increase in error detection during review.
- Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes (Barnett et al. 2015) (summary on the morning paper) Research into automatically splitting big diffs into smaller diffs leading to better reviews.
- Work Practices and Challenges in Pull-Based Development (Gousios et al. 2015) (summary on the morning paper) Field study of how GitHub pull requests are used in the wild.
Articles
- 8 Tips for Great Code Reviews A few basic rules for a better code review process.
- Brian Guthrie's Feature Branching Rant Twitter thread on the pros and cons of GitHub's open source first model with regards to "in-company" code review practice.
- Building an Inclusive Code Review Culture Guidelines to help ensure a collaborative and learning culture
- Code Review Etiquette A few tips helping with positive engagement on code review.
- Code Reviews: Just Do It Seminal post advocating for peer review of software back in 2006.
- Code Review Review is the Manager's Job Why management should ensure code review is done and done well.
- Designing Awesome Code Reviews Principles for actively designing a code review process.
- Effective Code Reviews Without the Pain Another 2006 classic on how to effectively perform a code review.
- How I review code More personal advice on how to best review a pull request from an engineer at Tumblr.
- How to Do Code Reviews Like a Human Techniques that treat the code review as not only a technical process but a social one as well.
- Pull Requests: How to Get and Give Good Feedback Advice for both sides of the code review process, the reviewer and the reviewee.
- Ship Small Diffs Why it's better to review small changes rather than large ones.
- The Art of Humanizing Pull Requests Emoji rich guide to the human side of code review via pull requests.
- Towards Productive Technical Discussions Tactical questions and actions to push code review discussions into a more productive territory.
- Unlearning Toxic Behaviors in a Code Review Culture A how-to guide for pull requests via how-not-too.
- Why I changed the way I think about Code Quality Why code quality is about more than just the code.
Books
- Best Kept Secrets of Peer Code Review Older compilation of 10 essays on the practice of code reviews. Some repetition due to different authors covering the same territory.
- Handbook of Walkthroughs, Inspections, and Technical Reviews Older book covering more formal walkthroughs but covers politics and group dynamics in review well.
- Peer Reviews in Software: A Practical Guide A practical guide to formal code inspections as a code review practice.
- Software Inspection: An Industry Best Practice Compendium of papers on code review practice.
- Ultimate Guide to Code Reviews Codacy sponsored ebook of code review practices based on developer survey.
- What to Look for in a Code Review JetBrains sponsored ebook of how to spot coding anti-patterns during review.
Talks and Podcasts
- Code Reviews: Honesty, Kindness, Inspiration: Pick Three - Jacob Stoebel RubyConf 2017 How to do effective code review while remaining kind to the original author.
- Goldilocks and the Three Code Reviews - Vaidehi Joshi RedDot Ruby Conf 2017 Finding just the right amount of code review by focussing on what is affecting.
- Implementing a Strong Code-Review Culture - Derek Prior Railsconf 2015 How to instill a healthy code review culture in a team.
Tools
- Crucible Atlassian's on-premise code review tool.
- Gerrit Open source git code review tool originating out of Google.
- GitHub Git hosting and pioneer of the "Pull Request".
- LGTM Automated Git code review for GitHub and Bitbucket pull requests for finding security vulnerabilities and code quality issues.
- Phabricator Open source git/mercurial/svn code review tool originating out of Facebook.
- PullRequest Code review as a service for GitHub pull requests.
- Pull Reminders Automated Slack reminders and metrics for GitHub pull requests.
- Reviewable Code review tool built on top of GitHub pull requests.
- Review Board Open source review tool that is SCM/platform neutral.
- Rubberduck Browser extension to adds code-aware navigation to GitHub pull requests.
- Sider Automated code review service for GitHub.
- Upsource JetBrain's on-premise git/mercurial/perforce/svn code review tool.
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, John Barton has waived all copyright and related or neighboring rights to this work.