Material for a training on best practices for programming and software development.
The material is available as a website.
- Syntax versus semantics
- Code style and conventions
- Version control with git and collaboration
- Code documentation
- Testing
- Testing as experiments
- Unit testing
- Functional testing
- Code coverage
- Deployment
- Continuous integration
Although this training aims to be programming language-agnostic, the repository also list a number of tools that are programming language-specific. Obviously, this can not be exhaustive, so feel free to suggest additional tools if you are aware of any.
Programming languages covered:
- C
- C++
- Fortran
- Python
- R
Of course, there are many programming language-agnostic tools as well.
docs
: directory with the markdown source for the site.mkdocs.yml
: mkdocs configuration file.environment.yml
: conda environment for building the site.linkcheck_skip_file.txt
: skip file for linkcheckLICENSE
: license for this repository and materials.CONTRIBUTING.md
: how to contribute to this repository.CODE_OF_CONDUCT.md
: code of conduct.
This material is licensed under Creative Commons.
You can contribute to this project in various ways.
Both contributing to this material and participating in the training are subject to the code of conduct.
I've "borrowed" much of the table of contents from a training given by the Netherlands eScience Center, although no actual contents of that training was used for the development of this material.