fair_code_design

This is the repository for the Code design lecture for the FAIR4RS program at the University of Sheffield

https://github.com/fair2-for-research-software/fair_code_design

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization fair2-for-research-software has institutional domain (rse.shef.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary

Keywords

design-patterns fair4rs generic scalability
Last synced: 6 months ago · JSON representation ·

Repository

This is the repository for the Code design lecture for the FAIR4RS program at the University of Sheffield

Basic Info
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Topics
design-patterns fair4rs generic scalability
Created over 1 year ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

This course has been developed as part of the FAIR24RS training program created by the RSE team at the University of Sheffield.

Description:

This course on Code Design introduces essential principles and best practices for writing clean, maintainable, and efficient code. It will introduce some standard design patterns that are useful to make your code more generic and maintainable and that will make your life easier as your code base grows. We will begin with the importance of good code design and examine some examples of non-optimally written code, trying to identify where we could make improvements. Focusing on Python language, we will look at how to create functions, classes and see how to organise a source code. We will then learn how we can write clean code, adhering to naming conventions, commenting, and following PEP 8 guidelines.

The end of the training will be dedicated to learning how to leave your code in peace while still be able to modify it: configuration file and command line interfaces.

Target Audience:

This course is aimed at researchers, including postgraduate research students, who write software (whether a few scripts or something more substantial) as part of their research and who want to follow best practices to make their code easier to read and maintain. This course is intended for researchers who use the Python programming language, but the basic concepts can be applied to other programming languages.

Prerequisites:

Basic knowledge of Python is required for this course.

Owner

  • Name: UoS FAIR2 for research software
  • Login: FAIR2-for-research-software
  • Kind: organization
  • Email: rse@sheffield.ac.uk

Training in FAIR (Findable, Accessible, Interoperable, Reusable) and Reproducible research software skills at the University of Sheffield

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Design your code! (and write less of it)
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Romain
    family-names: Thomas
    email: romain.thomas@sheffield.ac.uk
    affiliation: University of Sheffield
    orcid: https://orcid.org/0000-0001-8385-3276
repository-code: https://github.com/Romain-Thomas-Shef/FAIR_Code_design
url: 'https://fair2-for-research-software.github.io/FAIR_Code_design/'
abstract: >-
  This course on Code Design introduces essential principles and best practices for writing clean, maintainable, and
  efficient code. It will introduce some standard design patterns that are useful to make your code more generic and
  maintainable and that will make your life easier as your code base grows. We will begin with the importance of good
  code design and examine some examples of non-optimally written code, trying to identify where we could make
  improvements. Focusing on Python language, we will look at how to create functions, classes and see how to organise a
  source code. We will then learn how we can write clean code, adhering to naming conventions, commenting, and following
  PEP 8 guidelines.
keywords:
  - carpentries
  - fair4rs
  - university of sheffield
license: CC-BY-4.0

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 5
  • Push event: 105
  • Pull request event: 6
  • Create event: 3
Last Year
  • Issues event: 2
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 5
  • Push event: 105
  • Pull request event: 6
  • Create event: 3

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 7
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 14 hours
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.71
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 7
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 14 hours
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.71
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ns-rse (1)
  • Romain-Thomas-Shef (1)
Pull Request Authors
  • ns-rse (5)
  • martinjohndyer (3)
Top Labels
Issue Labels
Pull Request Labels
type: template and tools (3) CI (1)

Dependencies

.github/workflows/pr-close-signal.yaml actions
  • actions/upload-artifact v3 composite
.github/workflows/pr-comment.yaml actions
  • actions/checkout v3 composite
  • carpentries/actions/check-valid-pr main composite
  • carpentries/actions/comment-diff main composite
  • carpentries/actions/download-workflow-artifact main composite
.github/workflows/pr-post-remove-branch.yaml actions
  • carpentries/actions/download-workflow-artifact main composite
  • carpentries/actions/remove-branch main composite
.github/workflows/pr-preflight.yaml actions
  • carpentries/actions/check-valid-pr main composite
  • carpentries/actions/comment-diff main composite
.github/workflows/pr-receive.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • carpentries/actions/check-valid-pr main composite
  • carpentries/actions/setup-lesson-deps main composite
  • carpentries/actions/setup-sandpaper main composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/sandpaper-main.yaml actions
  • actions/checkout v3 composite
  • carpentries/actions/setup-lesson-deps main composite
  • carpentries/actions/setup-sandpaper main composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/update-cache.yaml actions
  • actions/checkout v3 composite
  • carpentries/actions/check-valid-credentials main composite
  • carpentries/actions/update-lockfile main composite
  • carpentries/create-pull-request main composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/update-workflows.yaml actions
  • actions/checkout v3 composite
  • carpentries/actions/check-valid-credentials main composite
  • carpentries/actions/update-workflows main composite
  • carpentries/create-pull-request main composite