The BDE libraries, https://github.com/bloomberg/bde
, provide a wide range of
useful functionality and also showcase the design and testing principles long
advocated by John Lakos (see Lakos '96, CppCpon 201):
- Fine-grained, hierarchical reusable (physical) components
- Focused component purposes based on well-defined class categories.
- Use of library facilities to implement effective Defensive Programming.
- Ubiquitous support for a user-supplied memory--allocation mechanisms.
- Design by (appropriately narrow) contracts.
After an outline of the functionality provided (e.g., date/time classes,
logging), this talk recaps the above Lakosian ideas, and shows, through BDE
documentation and code examples, how the ideas above influence the use of BDE
libraries in applications.