Code reviewing is a vital part of the coding process. It’s basically a software quality assurance activity during which a person reviews the source code of any program looking for things like bugs, security issues, coding standards and performance problems.If you want to become a code reviewer, here are some important things worth thinking about.
Some broad level code reviewing considerations might include: Is the code readable, uniform and understandable? In addition, is the code correct? Or, are there performance problems, security vulnerabilities or malware? There could be both accidental errors (e.g. typos), as well as structural errors (e.g. dead code, logic or algorithm bugs, performance or architecture concerns), explains an article in Medium.
The overall impact
Nigel Munoz, a former full-stack engineer at TheMuse and a current freelance software engineer, states that a code reviewer needs to think about how a ‘change affects the larger and smaller picture.’ When considering the bigger picture, the adept code reviewer will search for code that is repeated, non-modular or doesn’t adhere to recent standard conventions.
According to Code Project, the main areas a code reviewer focuses on are the following:
- General unit testing
- Comment and coding conventions
- Error handling
- Resource leaks
- Thread safety
- Control structures
Nothing too big or too small
Sam Donow, a core developer at Hudson River Trading, believes that ‘there is nothing too big or too small to comment on.’ Small improvements can lead to much bigger improvements in other parts of the codebase.
What to look for
Valerie Moyo, aged 25, works as a code reviewer for CoGrammar. She facilitates the learning process of students who are enrolled on one of HyperionDev’s bootcamps – Software Engineering, Full Stack Web Development or Mobile Development – by guiding them towards writing code that meets good coding practices. “I’ve always believed that anyone could code,” says Valerie. “I have a passion for teaching, so when I read up what it meant to become a code reviewer I knew that CoGrammar was the right place. I then pursued code reviewing as a potential career path.”
She looks for three things when code reviewing her students’ work:
This is about writing code that is structured correctly and conforms to the syntax (or structural) rules of a programming language.
This aspect looks at whether the code is readable, modularized and well-documented.
Code efficiency is about ensuring that the code is implemented in a manner that requires fewer computational resources. This process can be rather complex when reviewing code as it involves determining the efficiency of your code using tools such as the Big(O) notation. However, the idea is that your code performs reliably, faster and optimally especially when developing programs for large-scale applications.
Never forget security considerations
Proposed changes can have an impact on more than just the codebase. For example, if a new feature includes user entry, then as a code reviewer you would want to check out whether other security vulnerabilities have been introduced.
Ensure you ‘review the tests with the same importance as the rest of the code,’ says Abhishek Pillai, a tech lead at Teachers Pay Teachers on TheMuse. This will prevent new bugs and function as a form of documentation for anyone else working on the software in the future. However, you can’t entirely rely on tests as a code reviewer. Just because you ran tests it does not mean there are no bugs.
If you become a code reviewer, what can you expect to earn? According to Glassdoor, the average annual US salary for a code reviewer is $104,348. It’s clearly money well spent for companies, though. A study at one of the organisations at AT&T found a 14% increase in productivity and a 90% decrease in defects after the introduction of code reviewing.
In closing, code reviewing clearly provides a vital benefit to programmers. Essentially it’s an extra pair of eyes on the code to find errors, some of which can be very subtle. If you’re interested in becoming a code reviewer, check out CoGrammar.