Updated ADIOS2 Coding Guidelines (markdown) authored by williamfgc's avatar williamfgc
<p>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. 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:** **Objectives:**
<h3 class=""><code>Collaboration</code></h3> <h3 class=""><code>Collaboration</code></h3>
<ul><li>Make your work easy to understand and share</li> - Make your work easy to understand and share
<li>Allocate more time for path-finding, new functionality, and performance improvements rather than understanding developers' coding styles</li> - Allocate more time for path-finding, new functionality, and performance improvements rather than understanding developers' coding styles
<li>Expand developers and users base</li></ul> - Expand developers and users base
<h3 class=""><code>Execution</code></h3><ul><li>Execute new ideas faster by using features already in the language standard</li></ul> <h3 class=""><code>Execution</code></h3>
<h3 class=""><code>Quality</code></h3><ul><li>Improve the quality of the final software product: reduce potential security risks (segmentation faults, memory leaks and overflows)</li></ul> - Execute new ideas faster by using features already in the language standard
</p>
**Contents:** <h3 class=""><code>Quality</code></h3>
- Improve the quality of the final software product: reduce potential security risks (segmentation faults, memory leaks and overflows)
- **Contents:**
- [Clang Format Text Style](https://github.com/ornladios/ADIOS2/wiki/Clang-Format-Text-Style) - [Clang Format Text Style](https://github.com/ornladios/ADIOS2/wiki/Clang-Format-Text-Style)
- [File Header Structure and Includes](https://github.com/ornladios/ADIOS2/wiki/File-Header-Structure-and-Includes) - [File Header Structure and Includes](https://github.com/ornladios/ADIOS2/wiki/File-Header-Structure-and-Includes)
- [Variables Scope, Functions, and Namespaces](https://github.com/ornladios/ADIOS2/wiki/Variables-Scope,-Functions,-and-Namespaces) - [Variables Scope, Functions, and Namespaces](https://github.com/ornladios/ADIOS2/wiki/Variables-Scope,-Functions,-and-Namespaces)
... ...
......