How to do Code Review
Tags: codereview, reviewcode, codequality
Published: 2022-12-23 03:12:02

Code review is an essential part of the software development process. If done properly, it will not only improve the quality of the code, but it will also reduce the chances of bugs. Besides, code reviews provide a great opportunity to learn.

There are several ways to review code effectively and productively:

**Understand the context and purpose of the code:** It's important to understand the overall goals and requirements of the code you are reviewing. This will help you identify potential issues and improvements more effectively.

**Use a checklist:** A checklist or Pull Request template can help you focus on specific aspects of the code, such as readability, security, and performance. This can help ensure that you don't miss anything important during the review process.

**Collaborate with others:** Sharing your code review with other team members can help ensure that multiple perspectives are considered. This can be especially helpful if the code being reviewed is complex or involves multiple subsystems.

**Use tools:** Tools, such as a SonarQube or a linter, can help you identify issues in the code more quickly and efficiently.

The key to an effective code review is to approach it with an open mind and a focus on continuous improvement. By following these guidelines, you can help ensure that the code you review is of high quality and meets the project's goals and requirements.

## Tools for conducting reviews
 
There are many modern tools available for conducting code reviews. Some popular options include:

- GitHub: GitHub is a popular version control system that allows developers to collaborate on code and track changes. It also includes features for conducting code reviews, including the ability to leave comments on specific lines of code and request changes.
- GitLab: GitLab is another version control system that includes features for conducting code reviews. It offers tools for managing code review workflow, such as the ability to assign reviewers and set merge policies.

- Reviewable: Reviewable is a code review tool that integrates with GitHub. It offers features such as inline commenting, code highlighting, and the ability to view the diff of code changes side-by-side.

- Gerrit: Gerrit is an open-source code review tool that is often used in large organizations. It offers features such as inline commenting, code highlighting, and the ability to view the diff of code changes side-by-side.

- Phabricator: Phabricator is an open-source code review and project management tool. It offers features such as inline commenting, code highlighting, and the ability to view the diff of code changes side-by-side.

## Tools for checking code quality 

There are many open-source tools available for checking code quality. Here are a few examples:

- SonarQube: SonarQube is a tool for continuous code inspection that helps developers identify and fix code quality issues. It supports multiple programming languages and provides a web-based interface for reviewing and managing code quality issues.

- PMD: PMD is a static code analysis tool that checks for common coding mistakes, such as unused variables or methods, and helps developers write clean, maintainable code.

- FindBugs: FindBugs is a static code analysis tool that uses static analysis to look for bugs in Java code. It can detect a wide range of issues, including null pointer exceptions and infinite recursive loops.

- Checkstyle: Checkstyle is a static code analysis tool that checks Java code for compliance with a set of coding standards, such as naming conventions and formatting rules.

- Lint: Lint is a tool for checking code quality in a variety of programming languages, including C, C++, and Java. It can identify issues such as syntax errors and potential security vulnerabilities.


These are just a few examples of the many code review tools that are available. The right tool for your team will depend on your specific needs and preferences. It's worth noting that these tools can be used in combination to get a more comprehensive view of the code quality in a project.


## Think about this 

As a Software Engineer, reviewing code written by peers is part of the job. But it will be more impactful if it comes with added responsibility and accountability on the reviewer.

Reviewers should not think that their reviews are something done out of humility, they have to be made accountable for every line of code that they pass and every comment that they add.