| Literature DB >> 25685331 |
Janna Hastings1, Kenneth Haug1, Christoph Steinbeck1.
Abstract
Research in the context of data-driven science requires a backbone of well-written software, but scientific researchers are typically not trained at length in software engineering, the principles for creating better software products. To address this gap, in particular for young researchers new to programming, we give ten recommendations to ensure the usability, sustainability and practicality of research software.Entities:
Keywords: Best practices; Software engineering
Year: 2014 PMID: 25685331 PMCID: PMC4326482 DOI: 10.1186/2047-217X-3-31
Source DB: PubMed Journal: Gigascience ISSN: 2047-217X Impact factor: 6.524
Figure 1An example of incomprehensible code: What does this code actually do? It contains a bug; is it easy to spot?
Figure 2This code peforms the same function, but is written more clearly.
Figure 3An unhealthy module design for ‘biotool‘ with multiple interdependencies between different packages. An addition of functionality to the system (such as supporting a new field) requires updating the software in many different places. Refactoring into a simpler architecture would improve maintainability.
Figure 4The functional units from the biotool architecture can be grouped together in a refactoring process, putting similar functions together. The result may resemble a Model-View-Controller architecture.
Further reading
| Description | URL |
|---|---|
| Software Carpentry: scientific | |
| computing skills; learn online | |
| or in face-to-face workshops |
|
| The Software Sustainability Institute |
|
| Learn more about what makes | |
| code easy to maintain |
|
| How to write good unit tests |
|
| What is clean code? |
|
| Introduction to refactoring |
|
| The danger of prematureoptimization |
|
This table lists additional online resources where the interested reader can learn more about software engineering best practices in the research context.