doc,meta: add references to outside C++ guides

with explicit priorities

PR-URL: https://github.com/nodejs/node/pull/23317
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
Refael Ackermann 2018-10-07 19:07:57 -04:00
parent 9d1c9d7e9b
commit 0f8eaa4712

View File

@ -2,6 +2,7 @@
## Table of Contents ## Table of Contents
* [Guides and References](#guides-and-references)
* [Formatting](#formatting) * [Formatting](#formatting)
* [Left-leaning (C++ style) asterisks for pointer declarations](#left-leaning-c-style-asterisks-for-pointer-declarations) * [Left-leaning (C++ style) asterisks for pointer declarations](#left-leaning-c-style-asterisks-for-pointer-declarations)
* [C++ style comments](#c-style-comments) * [C++ style comments](#c-style-comments)
@ -25,14 +26,30 @@
* [Avoid throwing JavaScript errors in C++ methods](#avoid-throwing-javascript-errors-in-c) * [Avoid throwing JavaScript errors in C++ methods](#avoid-throwing-javascript-errors-in-c)
* [Avoid throwing JavaScript errors in nested C++ methods](#avoid-throwing-javascript-errors-in-nested-c-methods) * [Avoid throwing JavaScript errors in nested C++ methods](#avoid-throwing-javascript-errors-in-nested-c-methods)
Unfortunately, the C++ linter (based on
[Googles `cpplint`](https://github.com/google/styleguide)), which can be run ## Guides and References
explicitly via `make lint-cpp`, does not currently catch a lot of rules that are
specific to the Node.js C++ code base. This document explains the most common of The Node.js C++ codebase strives to be consistent in its use of language
these rules: features and idioms, as well as have some specific guidelines for the use of
runtime features.
Coding guidelines are based on the following guides (highest priority first):
1. This document
2. The [Google C++ Style Guide][]
3. The ISO [C++ Core Guidelines][]
In general code should follow the C++ Core Guidelines, unless overridden by the
Google C++ Style Guide or this document. At the moment these guidelines are
checked manually by reviewers, with the goal to validate this with automatic
tools.
## Formatting ## Formatting
Unfortunately, the C++ linter (based on [Googles `cpplint`][]), which can be
run explicitly via `make lint-cpp`, does not currently catch a lot of rules that
are specific to the Node.js C++ code base. This document explains the most
common of these rules:
### Left-leaning (C++ style) asterisks for pointer declarations ### Left-leaning (C++ style) asterisks for pointer declarations
`char* buffer;` instead of `char *buffer;` `char* buffer;` instead of `char *buffer;`
@ -304,4 +321,8 @@ not inside of nested calls.
Using C++ `throw` is not allowed. Using C++ `throw` is not allowed.
[C++ Core Guidelines]: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
[Google C++ Style Guide]: https://google.github.io/styleguide/cppguide.html
[Googles `cpplint`]: https://github.com/google/styleguide
[errors]: https://github.com/nodejs/node/blob/master/doc/guides/using-internal-errors.md [errors]: https://github.com/nodejs/node/blob/master/doc/guides/using-internal-errors.md