Improve A.all (#1413)

* reword the A.1 rule title
* add candidate content for the A.1 rule
* make minor improvements to the A.2 note
* simplify wording in the first bullet of A.4's Reason
This commit is contained in:
Dave Smith 2019-05-02 13:18:07 -05:00 committed by Herb Sutter
parent fc27313b75
commit a9242c8dae

View File

@ -19764,7 +19764,7 @@ This section contains ideas about higher-level architectural ideas and libraries
Architectural rule summary:
* [A.1: Separate stable from less stable part of code](#Ra-stable)
* [A.1: Separate stable code from less stable code](#Ra-stable)
* [A.2: Express potentially reusable parts as a library](#Ra-lib)
* [A.4: There should be no cycles among libraries](#Ra-dag)
* [???](#???)
@ -19774,9 +19774,9 @@ Architectural rule summary:
* [???](#???)
* [???](#???)
### <a name="Ra-stable"></a>A.1: Separate stable from less stable part of code
### <a name="Ra-stable"></a>A.1: Separate stable code from less stable code
???
Isolating less stable code facilitates its unit testing, interface improvement, refactoring, and eventual deprecation.
### <a name="Ra-lib"></a>A.2: Express potentially reusable parts as a library
@ -19785,15 +19785,15 @@ Architectural rule summary:
##### Note
A library is a collection of declarations and definitions maintained, documented, and shipped together.
A library could be a set of headers (a "header only library") or a set of headers plus a set of object files.
A library can be statically or dynamically linked into a program, or it may be `#include`d
A library could be a set of headers (a "header-only library") or a set of headers plus a set of object files.
You can statically or dynamically link a library into a program, or you can `#include` a header-only library.
### <a name="Ra-dag"></a>A.4: There should be no cycles among libraries
##### Reason
* A cycle implies complication of the build process.
* A cycle complicates the build process.
* Cycles are hard to understand and may introduce indeterminism (unspecified behavior).
##### Note