Clone
4
Coding Guidelines
Ryan edited this page 2026-01-21 02:58:31 +01:00

Coding Guidelines

These are the coding guidelines I try to adhere to when writing code for the Art project. Some guidelines are "hard-rules" while others are mere recommendations.

Git Master Branch

The master branch will always be called master. This is FINAL.

Versioning

Most Art projects are implemented in C++ and use the build2 build-system. See https://build2.org/build2/doc/build2-build-system-manual.xhtml#module-version for information about versioning.

Feature Branches

Feature branches are prefixed with feature/.

Release Branches

Release branches are prefixed with release/v.

Release Tags

Release tags are prefixed with v.

C++ Guidelines

Abbreviations/Acronyms

Abbreviations and acronyms shall be formatted like: Http_server.

Namespaces

Namespaces shall be named using PascalCase, for example namespace Art::Seafire.

Classes

Classes shall be named according to the Stroustrup PPP-style. For example class Temperature_reading.

Functions

Functions, both member functions and free functions, shall be named using snake case. For example: void register_user().

Enumerations

Enumerations shall be named like classes. Members of an enumeration shall be named using PascalCase, with a lower-case k-prefix. For example:

enum class Enumeration
{
  kEnum1,
  kEnum2

};

Include Guards

Include guards shall consist of the complete path of the header file, relative to the project root. With __ used as a directory separator.

For example, for art/seafire/version.hxx, the include guard should be: #ifndef art__seafire__version_hxx_.