Developing a program for infinite matter
- Structure a code in terms of functions.
- Modularize your codes.
- Be able to read input data flexibly.
- Write unit tests (test functions) and let your code undergo heavy testing.
- Refactor code in terms of classes (instead of functions only).
- Conduct and automate large-scale numerical experiments.
- New code is added in a modular fashion to a library (modules).
- Programs are run through convenient user interfaces.
- Use scripts in order to automatize tedious manual work.
- Make sure your scientific investigations are reproducible and document properly your results.
- Use version control software like for example git