Best Practices#
Helpful Templates#
Thinking about starting a new project? It can be helpful to use a template so you are not starting from scratch.
Package Template#
Anderson Banihirwe (@andersy005) created a template repository for packages, which includes automated code-quality checkers. This can be a helpful place to start.
Analysis Repository#
Within the Pangeo community, Julius Busecke (@jbusecke) created the “Cookiecutter-Science-Project” repository which serves as a template when you are working with Jupyter notebooks. This repository walks you through setting up your repository and syncing it up through Github.
Software Design#
4+1 Software Architecture Model#
Currently, the ESDS group is experimenting with design documents for the next generation of diagnostics package. This is an example of the “4+1 View Model of Software Architecture” with an application to the diagnostics workflow. Feel free to use this example as a template!
Zen of Scientific Computing#
A group of researchers and software engineers put together a helpful guide for developing scientific software, detailing the nuances of working Python stacks and the difference between daily use cases and more foundational libraries.
Managing Computational Resources#
NSF NCAR HPC Best Practices#
If you are using NSF NCAR Computational and Information Systems Lab (CISL) resources such as Casper and Derecho, this is a great place to start with learning to make the most of your computing and storage allocations.