Skip to content

ADIOS2 Coding Guidelines

williamfgc edited this page May 2, 2017 · 26 revisions

This wiki page contains coding guidelines that all developers must follow as standard practice in ADIOS 2.0 to take full advantage of the latest C++11 standard. This list is open as corrections and new ideas/suggestions come in place. Take them as mandatory good practices to improve ADIOS2 development and collaboration. Many topics are taken from Stroustrup, Sutter, and Meyers books, the clang-format, and google C++ style guide.

Objectives:

Collaboration

  • Make your work easy to understand and share
  • Allocate more time for path-finding, new functionality, and performance improvements rather than understanding developers' coding styles
  • Expand developers and users base

Execution

  • Execute new ideas faster by using features already in the language standard

Quality

  • Improve the quality of the final software product: reduce potential security risks (segmentation faults, memory leaks and overflows)

Contents:
- Clang Format Text Style
- Variables Scope, Functions, and Namespaces
- Classes and Structs
- RAII Memory Management
- const, constexpr correctness
- C Interoperability and Type Casting
- Exceptions for Error Reporting