Code Quality

There are several ways to improve software quality.

Editorconfig

Use editorconfig to adhere to the basic code style rules.

Using editor config is not necessary, but saves a lot of time and keeps developers from straying from the style of choice and helps to avoid some problems caused by formatting differences (line ending, tabs vs spaces)

download eScience Center editor config file.

Support most editors. Here you can download plugins for your editor of choice.

If you use eclipse, use this plugin.

if possible (i.e using linters and code formatters)

Use of linters will not only help to keep code cleaner but will also help finding bugs

Coding style

Here a very nice article about why coding styles matter, and increase software quality: Improving software quality, why Coding Style Matters

For style guides see the different languages in the Language Guides.

Google has a style guide for most languages google style guide page.

Software quality improvement tools

There are several web services that analyze code and make the quality of the code visible.

Code quality analysis services are web applications which have the following features:

  • Automaticly analyse your code after a Github push
  • Usually free for open source projects
  • Most supports multiple programming languages, but not every language will be have the same level of features
  • Grade or score for the quality of all of the code in the repository
  • List of issues with the code, grouped by severity
  • Drill down to location of issue
  • Default list of checks which the service provider finds the best practice
  • Can be configured to make the list of checks more strict or relaxed
  • Can be configured to ignore files or extensions
  • Can read configuration file from repository
  • Tracks issues over time and send alerts when quality deteriorates
  • Optionally reports on code coverage generated by a CI build

See the language guides for good options per language.

For a list of choices see http://shields.io/ or https://github.com/ripienaar/free-for-dev#code-quality

Name spaces

If your language supports namespaces, use nl.esciencecenter

Code reviews

See the Code Reviews section.