A usable set of tools is essential for software developers to produce good quality code at a reasonable rate. The basic set of tools has to suit the preferences of the developer, as well as the type of software to be produced. Below we list five very important choices you need to make when you are considering which tools to put together for a new .NET project.
1. Choice of IDE
The standard choice is Microsoft Visual Studio, but we can see that Visual Studio Code is gaining momentum. Visual Studio Code is a cross-platform editor (Windows, OSX, Linux), so developers have the freedom to use the development platform they prefer.
2. Choice of version control
Git is the obvious choice. If a developer opts not to use Git version control, there have to be good reasons to justify such a decision. Git is open source, free to use and there are plenty of service providers that offer to host code databases (including GitHub).
3. Choice of testing framework
In the past ten years, automatic unit tests have become mainstream. There is a wide range of frameworks that suit any temperament or purpose. The development and maintenance of unit tests involve an extra investment in quality, future-proof code.
4. Set-up of continuous integration and continuous delivery pipeline
Setting up automatic flows for integration tests and automatic deployment is central to ensuring fast and stable delivery of service. The choice of tool depends greatly on the development and operational platforms.
5. The choice that is often forgotten – code quality
Most developers are aware of the four points listed above, but often lack a strategic component in their set of tools, which is what helps to ensure that code quality can be controlled in the long run. The goal of managing code quality is to make the code durable and maintainable so that it can be adjusted for errors, fine-tuned, and further developed over time and by different developers.
CodeImprover Metrics – a tool for statistically static code analysis
At present, there is not a specific, generally recognized term that covers the meaning of code quality as described above. The description we have come up with is “statistically static code analysis.” CodeImprover’s free new GitHub app is a ready-made tool doing just that.
Static code analysis consists of two kinds of tools. The classic kind, which analyzes individual code lines, and the less familiar kind that focuses on the general code quality and maintainability.
Classic static code analysis:
Almost all compilers and interpreters contain a basic syntax checker, which is necessary in order for the code to be translated into a program that can be executed. These built-in analyzers have become relatively advanced and can be supplemented with other analytical tools, which analyze code more specifically with a view to finding potential problems. There is a wide range of these kinds of tools, including the open-source flagship SonarQube, which can be configured to inspect almost anything imaginable. A lot of these tools also perform some statistical static analysis.
Statistical static code analysis:
Statistical static code analysis reveals source code that is hard to read and understand, which means that the source code is expensive and difficult to manage in the future. Low-quality code makes the maintenance work difficult, expensive, and risky. It also significantly increases dependence on individuals, because the original developer might be the only one who can make changes in the code with any confidence. Whether a code is readable and easy to maintain or not depends a lot on general compliance with best practices for writing source code.
The free CodeImprover GitHub app
The free CodeImprover GitHub app applies statistical methods and provides specific insight into the quality of the code and proposes potential improvements. The app makes code quality transparent and accessible for developers, architects, and management, and since the app is embedded in GitHub, the measurements are a natural part of the development process.
>> Install CodeImprover’s free GitHub app here and get started now!