ALib C++ Library
Library Version: 2510 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
Benefits of Strictly Layered Software Architectures
  1. Design Principle of Orthogonality
    The modularization of the library is first of all a design principle, forcing library features to "fall into place" and make types and methods "orthogonal". (Orthogonal software can be considered as the opposite of "spaghetti code".)
  2. Comprehensible
    Users of the library are able to grasp the overall feature set much faster due to the modularization. As an example, the features of module ALib Expressions, is currently more than 25 bullet points. A user not interested in run-time expression evaluation, will not be bothered with that, because the module has an own namespace, separated reference documentation and an own Programmer's Manual.
  3. Well Defined Library Bootstrapping
    As explained in a later chapter, bootstrapping software process written in C++ needs to obey to some certain rules which the programming language itself does not provide support for. ALib Modules tremendously helps to organize the library bootstrap process.
  4. Minimum Footprint
    Modules can be compiled and used separately from others, as long as there is no dependency between modules. When using CMake to build the library, all module-dependencies are automatically resolved: If a using application just needs a single module, that module is all that has to be specified with CMake. The provided scripts select the dependent modules and corresponding source files automatically.
  5. Build-Speed
    The ability to just partly compile (and use) ALib also increases build speed. Not only that of the library itself, but also that of the user code (due to the selective header inclusion).