Chapter 9. Architecture
The physician can bury his mistakes, but the architect can only advise his client to plant vines.
—Frank Lloyd Wright
Discerning a system's architecture from its source code base can be difficult. However, after recognizing important architectural elements, you will find it a lot easier to navigate through the system, comprehend its structure and properties, and plan for new addition, modification, and restructuring activities. This happens because once you abstract an architectural feature, you immediately share a semantically rich vocabulary with its creators. In addition, an understanding of a system's architecture will guide you toward the types of interactions, communication patterns, and code structures to expect. ...