|
|
Large-Scale C++ Software DesignOverview
SynopsisIn "Large-Scale C++ Software Design", the author, John Lakos, presents a wealth of design rules, guidelines, and principles accumulated in his many years of experience, programming in C++ and teaching object-oriented programming (OOP). The book focuses on the physical design concepts encountered in developing large systems (e.g., databases, frameworks, etc.) before delving into the corresponding logical design issues. Table of Contents
PraisesCovers many issues that affect initial software development and maintenance efforts, such as, compile-time, cyclic dependencies, run-time performance, and readability. Excellent discussion on the physical design concept of insulation and its logical design complement, encapsulation. Also discusses the tradeoffs between competing logical and physical design goals. CriticismsThe diagrammatic notation used is not UML -- instead, it is the author's own creation, with some similarity to Booch notation. The author's argument to dismiss namespaces in favor of package prefixes has been challenged, since the primary reason given (at the time the book was written) no longer applies (i.e., the generally unavailability of C++ compilers which support this language feature). Final AnalysisUseful information for even the most experienced C++ programmer. In practice, pragmatic C++ programmers should note that these guidelines and principles are not strict rules, and may not reflect current convention (e.g., naming data members) or common practice (e.g., iterator idiom). CopyrightCopyright © 2003 Anthon Pang. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". |