🧶

How to review code

Tone and good-nature culture

Reviewee

Please keep in mind that code review is a process that can take multiple iterations, and reviewers may spot things later that they may not have seen the first time.

Reviewer

Understand why the change is necessary (fixes a bug, improves the user experience, refactors the existing code). Then:

The right balance

One of the most difficult things during code review is finding the right balance in how deep the reviewer can interfere with the code created by a reviewee.

Code quality reminders

Areas of the code quality we value:
•
Naming - names are clear, concise, and follow domain and language terminology.
•
Separation of concerns - ability to separate code into logical units: methods, classes, files, modules, components.
•
Code organization - ability to logically organize units in libraries, by domain, by layer, etc.
•
Readability - writing code which can be understood by others. Clarity over smartness.
•
Maintainability - writes code that is possible to support, refactor and expand with future requirements.
•
Efficiency - code is performing up to the required task and SLAs. Does not mean premature or over-optimization over readability.
•
Reliability and robustness - writing code capable of handling errors, unexpected situations and performing under load.
•
Commits quality - atomic with clear descriptions and organization.
•
Scalability - writing code which can be scaled to larger than expected loads.
•
Security - Keeps security in mind in all aspects of software creation and social interactions in order to build solid software and avoid leaks of any type.
•
Testing - Delivers code that has the necessary test coverage. Chooses the correct testing methodology, gets maximum results with minimal effort, tests are easy to read and maintain.
•
Documentation of the public APIs
• Following the coding 
best practices (company or language-specific)
• Using 
appropriate tools and technologies