{"id":21356990,"url":"https://github.com/gjbex/best-practices-for-scientific-computing","last_synced_at":"2025-07-13T00:32:29.349Z","repository":{"id":221356294,"uuid":"745445839","full_name":"gjbex/Best-practices-for-scientific-computing","owner":"gjbex","description":"Material for a training on best practices for scientific computing.","archived":false,"fork":false,"pushed_at":"2024-09-10T13:08:19.000Z","size":880,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-11T16:18:10.237Z","etag":null,"topics":["c","code","coverage","cpp","documentation","fortran","functionaltests","python","training","unittesting","version-control"],"latest_commit_sha":null,"homepage":"https://gjbex.github.io/Best-practices-for-scientific-computing/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gjbex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-19T10:55:26.000Z","updated_at":"2024-09-10T13:11:37.000Z","dependencies_parsed_at":"2024-09-10T14:24:56.830Z","dependency_job_id":"4824e930-3fb6-4d01-b59d-c499ecb61299","html_url":"https://github.com/gjbex/Best-practices-for-scientific-computing","commit_stats":null,"previous_names":["gjbex/best-practices-in-programming","gjbex/best-practices-for-scientific-computing"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gjbex%2FBest-practices-for-scientific-computing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gjbex%2FBest-practices-for-scientific-computing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gjbex%2FBest-practices-for-scientific-computing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gjbex%2FBest-practices-for-scientific-computing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gjbex","download_url":"https://codeload.github.com/gjbex/Best-practices-for-scientific-computing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225844823,"owners_count":17533160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","code","coverage","cpp","documentation","fortran","functionaltests","python","training","unittesting","version-control"],"created_at":"2024-11-22T04:42:44.390Z","updated_at":"2025-07-13T00:32:29.332Z","avatar_url":"https://github.com/gjbex.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Best practices in programming\n\n[![DOI](https://zenodo.org/badge/745445839.svg)](https://zenodo.org/doi/10.5281/zenodo.10665372)\n\n![Render and test\nworkflow](https://github.com/gjbex/Best-practices-in-programming/actions/workflows/build_and_deploy.yml/badge.svg)\n\nMaterial for a training on best practices for programming and software\ndevelopment, specifically for those working in the context of scientific\ncomputing.\n\nThe material is available as a\n[website](https://gjbex.github.io/Best-practices-for-scientific-computing/).\n\n\n## Table of contents\n\n1. Syntax versus semantics\n1. Code style and conventions\n1. Version control with git and collaboration\n1. Code documentation\n1. Testing\n   * Testing as experiments\n   * Unit testing\n   * Functional testing\n   * Code coverage\n1. Optimization\n1. Deployment\n1. Continuous integration\n1. Reproducibility\n1. Tools\n1. Training\n\n\n## Programming languages covered\n\nAlthough this training aims to be programming language-agnostic, the repository\nalso list a number of tools that are programming language-specific. Obviously,\nthis can not be exhaustive, so feel free to suggest additional tools if you are\naware of any.\n\nProgramming languages covered:\n\n* C\n* C++\n* Fortran\n* Python\n* R\n\nOf course, there are many programming language-agnostic tools as well.\n\n\n## What is it?\n\n1. `docs`: directory with the markdown source for the site.\n1. `mkdocs.yml`: mkdocs configuration file.\n1. `environment.yml`: conda environment for building the site.\n1. `linkcheck_skip_file.txt`: skip file for\n[linkcheck](https://github.com/filiph/linkcheck)\n1. `LICENSE`: license for this repository and materials.\n1. `CONTRIBUTING.md`: how to contribute to this repository.\n1. `CODE_OF_CONDUCT.md`: code of conduct.\n\n\n## About\n\nThis material is [licensed under Creative Commons](LICENSE).\n\nYou can [contribute](CONTRIBUTING.md) to this project in various ways.\n\nBoth contributing to this material and participating in the training are\nsubject to the [code of conduct](CODE_OF_CONDUCT.md).\n\n\n## Acknowledgments\n\nI've \"borrowed\" much of the table of contents from a\n[training](https://www.esciencecenter.nl/event/good-practices-in-research-software-development-2/)\ngiven by the Netherlands eScience Center, although no actual contents of that\ntraining was used for the development of this material.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgjbex%2Fbest-practices-for-scientific-computing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgjbex%2Fbest-practices-for-scientific-computing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgjbex%2Fbest-practices-for-scientific-computing/lists"}