Building architecture and software architecture have a lot in common, but there is one crucial difference. While architects study thousands of buildings in their training and during their careers, most software developers only ever get to know a handful of large programs well. And more often than not, those are programs they wrote themselves. They never get to see the great programs of history, or read critiques of those programs' designs written by experienced practitioners. As a result, they repeat one another's mistakes rather than building on one another's successes.
- Architecture Playbook: usable content and tools that you can use and reuse for your architecture challenge.
- Modern-Day Architecture Design Patterns for Software Professionals
- The Architecture of Open Source Applications
- The Universal Design Pattern