A comprehensive list of books on Software Architecture.
People in the software industry have long argued about a definition of architecture. Ralph Johnson famously defined software architecture as "the important stuff (whatever that is)." I, subjectively, followed his definition while deciding whether or not to include a specific book.
- What is this? (important)
- How did I make this?
- What should I read?
- Inclusion criteria
- Sorting criteria
- Books
- Find me at Goodreads
This is NOT a recommendation list. When I made this, I intended for a comprehensive list excluding low-profile books—see inclusion criteria below. There was a simple reason behind that: I'm not a subject-matter expert on all these topics. In fact, I not a subject-matter expert on even a single topic of these. More importantly, I don't know your experience level nor your preferences. Some people prefer theoretical over practical books (I do). Others prefer foundational over comprehensive books or dry over engaging books or art-based over engineering-based books. Some people even enjoy verbose over concise books. Or and or and or.
I thoroughly reviewed all books tagged with software-architecture on Goodreads and applied a simple algorithmic rules—see the inclusion criteria below. I don't think the list is perfectly comprehensive. Yet, I'm planning to update it regularly to make it as comprehensive as possible.
Don't be overwhelmed by the number of books on each subject. Practically speaking, you are supposed to read a few books on the subjects of your interest. Deciding what to read is your business. Personally, I start by reading a couple of reviews on Goodreads and examine the book table of content, if available. When in doubt, I read more reviews over the internet from blogs and the like. Alternatively, you may go with the Goodreads community preferences and start from the top of each list if you don't have the time to read reviews.
- The book must be relevant to Software Architecture; and
- The content is not obsolete.
- It must be technology agnostic or applicable to a wide range of technologies; and
- The book profile on Goodreads matches these rules:
- An average rating of 3.5 or above; and
- A total number of ratings equals 50 or above.
- At least 5 written reviews.
- A minimum length of 50 pages.
The books are sorted solely based on the number of written reviews. There are, however, other important factors worth considering. For example, the average rating, the number of ratings, and the publishing date. Yet, I don't have an idea to put all these factors in a reasonable mathematical formula. If you have any, I'd love to hear what you've got in mind.
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Clean Architecture | 9780134494166 | 4.23 | 3662 | 2017 |
Patterns of Enterprise Application Architecture | 9780321127426 | 4.11 | 3501 | 2002 |
Building Evolutionary Architectures: Support Constant Change | 9781491986363 | 3.74 | 705 | 2017 |
Fundamentals of Software Architecture: An Engineering Approach | 9781492043454 | 4.40 | 364 | 2020 |
Software Architecture in Practice, 4th Edition | 0785342154955 |