A “software architecture” defines the fundamental, high-level structure of a software system, acting as a blueprint for its components, their relationships, and how they interact. As a developer, having a command of the principles, patterns, and vocabulary of software architecture empowers you to contribute meaningfully throughout an application’s lifecycle—from its initial design to its deployment in production.
Grokking Software Architecture is a fast-paced introduction to the foundational ideas of software architecture, written for developers and aspiring architects. Creative illustrations and diagrams, hilarious disaster stories, “in action” missions, and a full repository of example code teach you how to spot design mistakes and understand architectural tradeoff decisions. Along the way, you’ll also explore author Matt Erman’s 5-step Architectural Thinking Process for reliably turning vague business requests into clear, defensible technical decisions.
about the reader
For junior and mid-level software developers and aspiring architects. Includes examples in C#, Java, Python, and JavaScript.
about the author
Matt Erman is a senior software engineer at Blackboard, LLC.