Awesome
<img src="Awesome Code Review.png" alt="Awesome Code Review" />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
- Awesome Code Review
- Contents
- Academic Papers
- Articles
- Books
- Talks and Podcasts
- Tools
- Contribute
- License
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.
- Characteristics of Useful Code Reviews: An Empirical Study at Microsoft (Bosu, Greiler, Bird, 2015) This paper reports the findings of a large scale qualitative and quantitative study focusing on understanding which code review comments are considered useful by developers.
- Code Reviewing in the Trenches: Understanding Challenges, Best Practices, and Tool Needs (MacLeod, Greiler, Storey, Bird, Czerwonka, 2018) A large scale study of over 900 Microsoft developers to understand their code review processes, their motivations to do code reviews, and which pitfalls and best practices they encounter.
- 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.
- Modern Code Review: A Case Study at Google A study that shows how code reviews work at Google.
- 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.
- A Better Code Review Decent set of patterns and anti-patterns for code reviews.
- A Zen Manifesto for Effective Code Reviews Practical tips for the submitter and the reviewer to make effective code reviews.
- 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: Create The Culture, Learn The Best Practices Code review tips and best practices from tech leaders.
- Code Review Etiquette A few tips helping with positive engagement on code review.
- Code Review Guidelines for Humans Some guidelines for giving and getting code reviews.
- Code Reviews: Just Do It Seminal post advocating for peer review of software back in 2006.
- Code Reviews at Google are lightweight and fast Details on how code review best practices and processes work at Google.
- Code Review Review is the Manager's Job Why management should ensure code review is done and done well.
- Comments During Code Reviews Writing good comments during code reviews.
- 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.
- Feedback Ladders: How We Encode Code Reviews at Netlify Helpful framwork for reviewers to classify how actionable specific pieces of review feedback are.
- How Code Reviews work at Microsoft A in-depth analysis on how the code review process looks like at Microsoft.
- How I review code More personal advice on how to best review a pull request from an engineer at Tumblr.
- How to do a code review A thorough description of how Google engineers do code reviews, from the Google's Engineering Practices documentation.
- 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.
- Modern Code Reviews Arguably belongs in academic paper, but it's a website giving an overview of evidence on code review by facet/context. Links off to a bunch of papers.
- On Code Review Short article about tooling and personal elements of code review, from an ex-Facebook engineer.
- 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.
- Stacked Pull Requests: Keeping GitHub Diffs Small A step-by-step process to split big PRs and increase review engagement.
- 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.
- Michaela Greiler on Code Reviews - SE Radio 2020 Michaela Greiler discusses the importance of code reviews and how to conduct them on the Software Engineering Radio podcast.
Tools
- Axolo Github/GitLab Slack integration. Create one ephemeral channel per pull request/ merge request.
- 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".
- Gitpod Code review pull requests in a full IDE within your browser.
- 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.
- PullNotifier Improve pull request visibility and overall productivity for dev teams using Github and Slack.
- PullRequest Code review as a service 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.
- Sider Automated code review service for GitHub.
- Softagram Automated code change visualization (and dependency analytics) for pull requests, merge requests (GitLab) and patch sets (Gerrit).
- SonarCloud Detect code smells, bugs and vulnerabilities in Azure DevOps, Bitbucket and GitHub repositories.
- Upsource JetBrain's on-premise git/mercurial/perforce/svn code review tool.
- Viezly Code review service with pull request visualization and enhanced navigation between changes.
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.