Code Analysis Tools - The Sherlock Behind It All
To state things up front - Writing code is a process that entails a thought process more than just writing code. Now that read very redundant, didn’t it?
Before you dismiss this thought as a bunch of content writers drowned in Holi revelry, allow us to expand.
Think of what the great majority of developers work on; adding, editing and rewriting portions of a pre-existing codebase. 90% of newly recruited developers tend to work on legacy projects – projects that have been worked upon by several developers before them; it’s just the tiny minority of developers who work on projects that start from scratch.
What does this demand? Hiring developers who write code that is readable and digestible.
As Martin Fowler had so eloquently stated – “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
Sshh! The Code speaks, and we’re listening.
The biggest distinction between a good and great programmer is marked by the nature of their code. Whilst a good developer writes quick code that accomplishes short term goals (does what it intends to do), a great programmer’s code would always be reusable, easy to understand and contains no duplication (read “scaling an application to Godzilla levels”)
With code quality (or lack of) being the Holy Grail of all developer recruitment parameters, we feel incredibly pumped to bring an intelligent new feature to our Code Quality Analyzer.
For each code solution, DoSelect now incorporates in-depth details about its code quality issues along with an individual and an average quality score.
By categorizing code quality issues into two main types - Errors and Warnings, our analyzer cleverly highlights the varying nature of code violation with red highlights signifying errors and yellow highlights signifying warnings. Another useful addition to these highlights is respective annotations for the exact errors. For instance, a “bug” level error is reported in the form of an annotation for violations which lead to well, um, bugs (another redundancy, we are getting bit by bugs, it seems!)
The quality issue types cover various violations under their umbrella.
The issues covered under Errors are –
- Complexity to check for interdependent paths through the program to highlight a code's complexity.
- Bug Risk to cover scenarios where the format of an executed code is vulnerable to bugs.
- Security to cover scenarios where the format of an executed code is vulnerable to security issues.
- Performance to check the way that code is being implemented when it is not written in the most optimized manner.
The above image illustrates a Bug risk alert and its corresponding description in a snippet of submitted Javascript code solution.
The issues covered under Warnings are -
The issues covered under Warnings are -
- Clarity to check for understandability and readability of a code by other developers.
- Style to cater to metrics such as code formatting, whitespace, comments, character case, etc.
- Duplication to check for code violations due to redundant and duplicate code that creates extensively lengthy solutions.
The above image illustrates Style warnings and their corresponding descriptions in a snippet of submitted Java code solution.
Normally, human code analysis requires considerable amounts of inspection in order to gather a well-rounded understanding of a candidate’s skills. With a code quality analyzer that integrates itself with human-like perceptive annotations and insights, you’d be able to get a code level understanding deeper than ever before, and in one-sixth of the time.
What are your current code quality assessment blues? Write to us at nikita@doselect.com and we would help you eliminate them in a cost efficient and technically exhaustive manner. In case you want to give these assessments a spin, write to us at hello@doselect.com and we would set up a conversation.
Till next time.