30 KiB
30 KiB
Awesome Code Review !Awesome (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) (https://github.com/sindresorhus/awesome)
▐ A curated list of tools, articles, books, and any other resource related to code review (https://en.wikipedia.org/wiki/Code_review)
Code review is the systematic examination (sometimes referred to as peer review) of computer source code.
Contents
- Awesome Code Review !Awesome (https://github.com/sindresorhus/awesome) (#awesome-code-review-)
- Contents (#contents)
- Academic Papers (#academic-papers)
- Articles (#articles)
- Books (#books)
- Talks and Podcasts (#talks-and-podcasts)
- Tools (#tools)
- Contribute (#contribute)
- License (#license)
Academic Papers
- An experiment to assess the cost-benefits of code inspections in large scale software development (Porter, Siy, Toman & Votta, 1997) (http://laser.cs.umass.edu/courses/cs521-621.Fall10/documents/PorterSiyetal.pdf) 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) (https://dl.acm.org/citation.cfm?id=253234) 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) (https://www.michaelagreiler.com/wp-content/uploads/2019/02/Characteristics-Of-Useful-Comments.pdf) 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)
(https://www.michaelagreiler.com/wp-content/uploads/2019/03/Code-Reviewing-in-the-Trenches-Understanding-Challenges-Best-Practices-and-Tool-Needs.pdf) 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) (https://link.springer.com/chapter/10.1007/978-3-642-59412-0_35) 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) (http://research.microsoft.com/pubs/238937/barnett2015hdh.pdf) (summary on the morning paper
(https://blog.acolyer.org/2015/06/26/helping-developers-help-themselves-automatic-decomposition-of-code-review-changes/)) Research into automatically splitting big diffs into smaller diffs leading to better reviews.
- Modern Code Review: A Case Study at Google (https://sback.it/publications/icse2018seip.pdf) A study that shows how code reviews work at Google.
- Work Practices and Challenges in Pull-Based Development (Gousios et al. 2015) (https://sback.it/publications/icse2016b.pdf) (summary on the morning paper
(https://blog.acolyer.org/2015/06/23/work-practices-and-challenges-in-pull-based-development/)) Field study of how GitHub pull requests are used in the wild.
Articles
- 8 Tips for Great Code Reviews (https://kellysutton.com/2018/10/08/8-tips-for-great-code-reviews.html) A few basic rules for a better code review process.
- A Better Code Review (https://www.giladpeleg.com/blog/better-code-review/) Decent set of patterns and anti-patterns for code reviews.
- A Zen Manifesto for Effective Code Reviews (https://medium.freecodecamp.org/a-zen-manifesto-for-effective-code-reviews-e30b5c95204a) Practical tips for the submitter and the reviewer to make effective code reviews.
- Brian Guthrie's Feature Branching Rant (https://twitter.com/bguthrie/status/937750796334174209) 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 (https://blog.plaid.com/building-an-inclusive-code-review-culture/) Guidelines to help ensure a collaborative and learning culture
- Code Review: Create The Culture, Learn The Best Practices (https://codingsans.com/blog/code-review) Code review tips and best practices from tech leaders.
- Code Review Etiquette (https://css-tricks.com/code-review-etiquette/) A few tips helping with positive engagement on code review.
- Code Review Guidelines for Humans (https://phauer.com/2018/code-review-guidelines/) Some guidelines for giving and getting code reviews.
- Code Reviews: Just Do It (https://blog.codinghorror.com/code-reviews-just-do-it/) Seminal post advocating for peer review of software back in 2006.
- Code Reviews at Google are lightweight and fast (https://www.michaelagreiler.com/code-reviews-at-google/) Details on how code review best practices and processes work at Google.
- Code Review Review is the Manager's Job (https://hecate.co/blog/code-review-review-is-the-managers-job) Why management should ensure code review is done and done well.
- Comments During Code Reviews (https://medium.com/@otarutunde/comments-during-code-reviews-2cb7791e1ac7) Writing good comments during code reviews.
- Designing Awesome Code Reviews (https://medium.com/unpacking-trunk-club/designing-awesome-code-reviews-5a0d9cd867e3) Principles for actively designing a code review process.
- Effective Code Reviews Without the Pain (https://www.developer.com/tech/article.php/3579756/Effective-Code-Reviews-Without-the-Pain.htm) Another 2006 classic on how to effectively perform a code review.
- Feedback Ladders: How We Encode Code Reviews at Netlify (https://www.netlify.com/blog/2020/03/05/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 (https://www.michaelagreiler.com/code-reviews-at-microsoft-how-to-code-review-at-a-large-software-company/) A in-depth analysis on how the code review process looks like at Microsoft.
- How I review code (https://engineering.tumblr.com/post/170040992289/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 (https://google.github.io/eng-practices/review/reviewer/) 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 (https://mtlynch.io/human-code-reviews-1/) Techniques that treat the code review as not only a technical process but a social one as well.
- Modern Code Reviews (https://rethought.se/research/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 (https://medium.com/@schrockn/on-code-reviews-b1c7c94d868c) Short article about tooling and personal elements of code review, from an ex-Facebook engineer.
- Pull Requests: How to Get and Give Good Feedback (https://kickstarter.engineering/pull-requests-how-to-get-and-give-good-feedback-f573469f0c44) Advice for both sides of the code review process, the reviewer and the reviewee.
- Ship Small Diffs (https://blog.skyliner.io/ship-small-diffs-741308bec0d1) Why it's better to review small changes rather than large ones.
- Stacked Pull Requests: Keeping GitHub Diffs Small (https://graysonkoonce.com/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 (https://blog.usejournal.com/the-art-of-humanizing-pull-requests-prs-b520588eb345) Emoji rich guide to the human side of code review via pull requests.
- Towards Productive Technical Discussions (https://cate.blog/2018/07/03/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 (https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c) A how-to guide for pull requests via how-not-too.
- Why I changed the way I think about Code Quality (https://medium.freecodecamp.org/why-i-changed-the-way-i-think-about-code-quality-88c5d8d57e68) Why code quality is about more than just the code.
Books
- Best Kept Secrets of Peer Code Review (https://www.goodreads.com/book/show/1563457.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 (https://www.amazon.com/Handbook-Walkthroughs-Inspections-Technical-Reviews/dp/0932633196) Older book covering more formal walkthroughs but covers politics and group dynamics in
review well.
- Peer Reviews in Software: A Practical Guide (https://www.amazon.com/Peer-Reviews-Software-Practical-Guide/dp/0201734850) A practical guide to formal code inspections as a code review practice.
- Software Inspection: An Industry Best Practice (https://www.amazon.com/Software-Inspection-Industry-Best-Practice/dp/0818673400) Compendium of papers on code review practice.
- Ultimate Guide to Code Reviews (https://www.codacy.com/ebooks/guide-to-code-reviews) Codacy sponsored ebook of code review practices based on developer survey.
- What to Look for in a Code Review (https://leanpub.com/whattolookforinacodereview) 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 (http://confreaks.tv/videos/rubyconf2017-code-reviews-honesty-kindness-inspiration-pick-three) 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 (https://confreaks.tv/videos/reddotrubyconf2017-goldilocks-and-the-three-code-reviews) Finding just the right amount of code review by focussing on what is affecting.
- Implementing a Strong Code-Review Culture - Derek Prior Railsconf 2015 (https://www.youtube.com/watch?v=PJjmw9TRB7s) How to instill a healthy code review culture in a team.
- Michaela Greiler on Code Reviews - SE Radio 2020 (https://www.se-radio.net/2020/02/episode-400-michaela-greiler-on-code-reviews/) Michaela Greiler discusses the importance of code reviews and how to conduct them on the Software Engineering
Radio podcast.
Tools
- Axolo (https://www.axolo.co) Github/GitLab Slack integration. Create one ephemeral channel per pull request/ merge request.
- Crucible (https://www.atlassian.com/software/crucible) Atlassian's on-premise code review tool.
- Gerrit (https://www.gerritcodereview.com/) Open source git code review tool originating out of Google.
- GitHub (https://github.com) Git hosting and pioneer of the "Pull Request".
- Gitpod (https://gitpod.io) Code review pull requests in a full IDE within your browser.
- LGTM (https://lgtm.com) Automated Git code review for GitHub and Bitbucket pull requests for finding security vulnerabilities and code quality issues.
- Phabricator (https://www.phacility.com/phabricator/) Open source git/mercurial/svn code review tool originating out of Facebook.
- PullNotifier (https://www.pullnotifier.com/) Improve pull request visibility and overall productivity for dev teams using Github and Slack.
- PullRequest (https://www.pullrequest.com/) Code review as a service for GitHub pull requests.
- Reviewable (https://reviewable.io/) Code review tool built on top of GitHub pull requests.
- Review Board (https://www.reviewboard.org/) Open source review tool that is SCM/platform neutral.
- Sider (https://sider.review/) Automated code review service for GitHub.
- Softagram (https://softagram.com/) Automated code change visualization (and dependency analytics) for pull requests, merge requests (GitLab) and patch sets (Gerrit).
- SonarCloud (https://sonarcloud.io) Detect code smells, bugs and vulnerabilities in Azure DevOps, Bitbucket and GitHub repositories.
- Upsource (https://www.jetbrains.com/upsource/) JetBrain's on-premise git/mercurial/perforce/svn code review tool.
- Viezly (https://viezly.com) Code review service with pull request visualization and enhanced navigation between changes.
Contribute
Contributions welcome! Read the contribution guidelines (contributing.md) first.
License
!CC0 (http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg) (http://creativecommons.org/publicdomain/zero/1.0)
To the extent possible under law, John Barton (https://johnbarton.co) has waived all copyright and
related or neighboring rights to this work.
codereview Github: https://github.com/joho/awesome-code-review