Skip to content

Software Development

Daniel Schwen edited this page Oct 23, 2022 · 19 revisions

Jon Guyer, Daniel Schwen

  • Start small and ensure quality before getting bigger

Follow good coding practices

Commenting code and design

Comment code generously. Whether it is for other developers working on the code or for yourself a couple of years (months?) in the future.

"Code is more often read than written."

Documentation can be roughly split into API documentation and inline code documentation. The former facilitates reuse of the code. Doxygen is the de facto standard for C++ API documentation, but supports many other languages, such as C, C#, Java, and Python. The latter, inline code comments, improves the readability and should capture the intent of the documented code (which can be very valuable for debugging purposes).

API documentation should be augmented by design documents that offer a high level overview over a code, library, or framework. Design documentation describes the the way different pars of the code fit together and their roles in the overall project.

End-user documentation

Key to successful software projects with broad adoption is good end-user documentation. To ease the learning curve for new users, this documentation should contain

  • Introductory tutorials
  • Examples
  • Theory docs
  • Reference documentation

Version control and metadata

To facilitate contributions to a code version control is ...

, metadata, documentation!!!, version control

  • Include regression testing (simple tests); use existing tools or build simple scripts. Tests can be run on multiple architectures.
  • Apply code verification - Connection of your model to a sharp interface model/asymptotics and analytical or known solutions.
Clone this wiki locally