12 rules of data-oriented programming
Aller à la navigation
Aller à la recherche
Maintainability
- Minimize software dependencies and avoid heavy or unusual frameworks
- Never use hard-coded values: use command-line parameters, environment variables and configuration files instead
- Propose a verbose/debug mode (logging read and written files, calculation steps)
- Create unit tests through development
- Use versioning (git)
Usability
- Provide documentation for the software: a README file and an usage message; if applicable, also provide an example dataset
- Specify installation instructions with an explicit and exhaustive list of requirements
- make another person in the team install and test the software
- Only use standard file formats: CSV/TSV, XML, JSON, YAML
- For web application, provide an API
Efficiency
- Use memory parsimoniously (if compiled, monitor with a tool like Valgrind)
- Add built-in support for compressed data (gzipped)
Recommended software
- Data: SQLite, PostgreSQL, Neo4j, HDF5
- Languages: C, Python, R, bash, Tcl, PHP