commit fa1e936ae81381429665c4a4405b5b2df2a6ebde Author: Mustapha Hadid Date: Fri Jun 25 23:00:00 2021 +0300 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..6366d71 --- /dev/null +++ b/README.md @@ -0,0 +1,222 @@ +# Awesome Software Architecture Books + +A curated list of books on, or relevant to, 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. + +## Table of Contents + +- [How did I make this?](#how-did-i-make-this) +- [Inclusion criteria](#inclusion-criteria) +- [Sorting criteria](#sorting-criteria) +- [Books](#books) + - [System Architecture](#system-architecture) + - [Design Patterns](#design-patterns) + - [Domain-Driven Design](#domain-driven-design) + - [Microservices](#microservices) + - [Data Engineering](#data-engineering) + - [Streaming and Messaging](#streaming-and-messaging) + - [Distributed Systems](#distributed-systems) + - [Cloud Engineering](#cloud-engineering) + - [Web Scalability](#web-scalability) + - [Agile](#agile) + - [DevOps](#devops) + - [General](#general) +- [Find me at Goodreads](https://www.goodreads.com/user/show/63237197) + +## How did I make this? + +I thoroughly reviewed all books +[tagged with software-architecture](https://www.goodreads.com/shelf/show/software-architecture) on Goodreads and picked +the best objectively—see the selection criteria below. I don't think, by any means, this list is comprehensive. Yet, I'm +planning to update it regularly to make it as comprehensive as possible. + +## Inclusion criteria + +- 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. + +## Sorting criteria + +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](https://github.com/mhadidg/software-architecture-books/issues/new) what you've got in mind. + +## Books + +### System Architecture + +| Title | Rating | Raters | Published | +| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Clean Architecture | [4.23](https://www.goodreads.com/book/show/18043011) | 3662 | 2017 | +| Patterns of Enterprise Application Architecture | [4.11](https://www.goodreads.com/book/show/70156) | 3501 | 2002 | +| Building Evolutionary Architectures: Support Constant Change | [3.74](https://www.goodreads.com/book/show/35755822) | 705 | 2017 | +| Fundamentals of Software Architecture: An Engineering Approach | [4.40](https://www.goodreads.com/book/show/44144493) | 364 | 2020 | +| Software Architecture in Practice, 4th Edition | [3.82](https://www.goodreads.com/book/show/70143) | 608 | 2021 | +| Architecting for Scale: High Availability for Your Growing Applications | [3.56](https://www.goodreads.com/book/show/27560189) | 164 | 2016 | +| Software Architecture for Developers: Volume 1 - Technical leadership and the balance with agility | [3.87](https://www.goodreads.com/book/show/33221518) | 332 | 2016 | +| Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives | [4.10](https://www.goodreads.com/book/show/223932) | 205 | 2005 | +| Design It!: From Programmer to Software Architect | [3.68](https://www.goodreads.com/book/show/31670678) | 168 | 2017 | +| The Software Architect Elevator: Transforming Enterprises with Technology and Business Architecture | [4.48](https://www.goodreads.com/book/show/49828197) | 101 | 2020 | +| Righting Software | [3.79](https://www.goodreads.com/book/show/51109185) | 76 | 2019 | +| Analysis Patterns: Reusable Object Models | [3.80](https://www.goodreads.com/book/show/85002) | 246 | 1996 | +| 12 Essential Skills for Software Architects | [3.70](https://www.goodreads.com/book/show/13039744) | 118 | 2011 | +| Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture | [3.78](https://www.goodreads.com/book/show/33221619) | 108 | 2016 | +| Documenting Software Architectures: Views and Beyond, 2nd Edition | [3.68](https://www.goodreads.com/book/show/223911) | 174 | 2010 | +| Software Architecture: Foundations, Theory, and Practice | [3.75](https://www.goodreads.com/book/show/6329721) | 65 | 2008 | +| SOA: Principles of Service Design | [3.72](https://www.goodreads.com/book/show/1265221) | 130 | 2007 | +| Service-Oriented Architecture: Concepts, Technology, and Design | [3.65](https://www.goodreads.com/book/show/70147) | 170 | 2005 | + +### Design Patterns + +| Title | Rating | Raters | Published | +| ----------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software | [4.28](https://www.goodreads.com/book/show/58128) | 7574 | 2021 | +| Design Patterns: Elements of Reusable Object-Oriented Software | [4.19](https://www.goodreads.com/book/show/85009) | 10293 | 1994 | +| Refactoring to Patterns | [4.05](https://www.goodreads.com/book/show/85041) | 1399 | 2004 | +| Dive Into Design Patterns | [4.78](https://www.goodreads.com/book/show/43125355) | 351 | 2019 | +| Patterns Principles and Practices of Domain Driven Design | [4.35](https://www.goodreads.com/book/show/25531393) | 292 | 2015 | +| Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd Edition | [3.88](https://www.goodreads.com/book/show/85021) | 344 | 2004 | +| Reactive Design Patterns | [3.60](https://www.goodreads.com/book/show/21799444) | 138 | 2014 | + +### Domain-Driven Design + +| Title | Rating | Raters | Published At | +| ------------------------------------------------------------------ | ---------------------------------------------------- | ------ | ------------ | +| Domain-Driven Design: Tackling Complexity in the Heart of Software | [4.16](https://www.goodreads.com/book/show/179133) | 4445 | 2003 | +| Domain-Driven Design Distilled | [3.78](https://www.goodreads.com/book/show/28602719) | 816 | 2016 | +| Implementing Domain-Driven Design | [4.06](https://www.goodreads.com/book/show/15756865) | 934 | 2013 | +| Domain-Driven Design Quickly | [3.59](https://www.goodreads.com/book/show/2558105) | 454 | 2007 | + +### Microservices + +| Title | Rating | Raters | Published | +| ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Building Microservices: Designing Fine-Grained Systems, 2nd Edition | [4.18](https://www.goodreads.com/book/show/22512931) | 3792 | 2021 | +| Monolith to Microservices: Sustaining Productivity While Detangling the System | [4.28](https://www.goodreads.com/book/show/44144499) | 389 | 2019 | +| Microservice Patterns | [4.15](https://www.goodreads.com/book/show/34372564) | 333 | 2017 | +| Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization | [3.81](https://www.goodreads.com/book/show/33252815) | 360 | 2016 | +| Reactive Microservices Architecture | [3.63](https://www.goodreads.com/book/show/29630482) | 186 | 2016 | +| Microservice Architecture: Aligning Principles, Practices, and Culture | [3.50](https://www.goodreads.com/book/show/30827276) | 217 | 2016 | +| The Tao of Microservices | [3.95](https://www.goodreads.com/book/show/29932926) | 78 | 2017 | +| Microservices From Design to Deployment | [3.88](https://www.goodreads.com/book/show/31444510) | 80 | 2016 | +| Microservices AntiPatterns and Pitfalls | [3.96](https://www.goodreads.com/book/show/31291348) | 82 | 2016 | + +### Data Engineering + +| Title | Rating | Raters | Published | +| ------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Designing Data-Intensive Applications | [4.72](https://www.goodreads.com/book/show/23463279) | 4385 | 2015 | +| The Model Thinker: What You Need to Know to Make Data Work for You | [3.92](https://www.goodreads.com/book/show/39088592) | 493 | 2018 | +| Big Data: Principles and best practices of scalable realtime data systems | [3.82](https://www.goodreads.com/book/show/13421400) | 440 | 2015 | +| Beautiful Data: The Stories Behind Elegant Data Solutions | [3.65](https://www.goodreads.com/book/show/6492189) | 258 | 2009 | +| Data Modeling Made Simple: A Practical Guide for Business and It Professionals, 2nd Edition | [3.76](https://www.goodreads.com/book/show/7846548) | 74 | 2015 | + +### Streaming and Messaging + +| Title | Rating | Raters | Published | +| --------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions | [4.10](https://www.goodreads.com/book/show/85012) | 1388 | 2003 | +| Making Sense of Stream Processing | [4.31](https://www.goodreads.com/book/show/29598815) | 143 | 2016 | +| Streaming Systems | [3.92](https://www.goodreads.com/book/show/34431414) | 106 | 2018 | +| Designing Event-Driven Systems | [3.80](https://www.goodreads.com/book/show/39793332) | 190 | 2018 | + +### Distributed Systems + +| Title | Rating | Raters | Published | +| ------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services | [3.58](https://www.goodreads.com/book/show/34691716) | 453 | 2018 | +| Distributed Systems For Fun and Profit | [4.19](https://www.goodreads.com/book/show/18652140) | 326 | 2013 | +| Security Engineering: A Guide to Building Dependable Distributed Systems, 3rd Edition | [4.19](https://www.goodreads.com/book/show/3268675) | 622 | 2020 | +| Database Internals: A Deep Dive into How Distributed Data Systems Work | [4.26](https://www.goodreads.com/book/show/44647144) | 178 | 2019 | +| Distributed Systems: Principles and Paradigms, 2nd Edition | [3.99](https://www.goodreads.com/book/show/405614) | 357 | 2016 | + +### Cloud Engineering + +| Title | Rating | Raters | Published | +| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| Infrastructure as Code: Managing Servers in the Cloud | [4.20](https://www.goodreads.com/book/show/26544394) | 316 | 2016 | +| Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment | [3.57](https://www.goodreads.com/book/show/34431415) | 130 | 2017 | +| Cloud Native Patterns: Designing change-tolerant software | [4.24](https://www.goodreads.com/book/show/36410104) | 76 | 2019 | +| The Practice of Cloud System Administration: Devops and SRE Practices for Web Services, Volume 2 | [4.38](https://www.goodreads.com/book/show/23131211) | 247 | 2014 | +| Beyond the Twelve-Factor App Exploring the DNA of Highly Scalable, Resilient Cloud Applications | [3.54](https://www.goodreads.com/book/show/30460867) | 91 | 2016 | +| Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications | [4.27](https://www.goodreads.com/book/show/44144501) | 101 | 2019 | +| Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications | [4.23](https://www.goodreads.com/book/show/21403727) | 66 | 2014 | +| Cloud Computing: Concepts, Technology & Architecture | [3.78](https://www.goodreads.com/book/show/17133059) | 137 | 2013 | + +### Web Scalability + +| Title | Rating | Raters | Published | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, 2nd Edition | [4.00](https://www.goodreads.com/book/show/7282390) | 307 | 2015 | +| Web Scalability for Startup Engineers | [4.58](https://www.goodreads.com/book/show/23615147) | 160 | 2015 | +| Building Scalable Web Sites | [3.73](https://www.goodreads.com/book/show/112863) | 299 | 2006 | +| Scalable Internet Architectures | [3.67](https://www.goodreads.com/book/show/853963) | 168 | 2006 | +| Scalability Rules: 50 Principles for Scaling Web Sites | [3.97](https://www.goodreads.com/book/show/10758425) | 236 | 2011 | +| The Art of Capacity Planning: Scaling Web Resources | [3.75](https://www.goodreads.com/book/show/4843318) | 212 | 2008 | + +### Agile + +| Title | Rating | Raters | Published At | +| --------------------------------------------------------------- | ---------------------------------------------------- | ------ | ------------ | +| Clean Agile: Back to Basics | [4.30](https://www.goodreads.com/book/show/45280021) | 633 | 2019 | +| Agile Software Development: Principles, Patterns, and Practices | [4.25](https://www.goodreads.com/book/show/84985) | 1201 | 2002 | +| The Art of Agile Development | [3.96](https://www.goodreads.com/book/show/1654215) | 828 | 2007 | +| Agile Software Development | [3.98](https://www.goodreads.com/book/show/942577) | 390 | 2001 | +| Planning Extreme Programming | [3.91](https://www.goodreads.com/book/show/67839) | 363 | 2000 | +| Scaling Software Agility: Best Practices for Large Enterprises | [3.65](https://www.goodreads.com/book/show/496189) | 168 | 2007 | +| Balancing Agility and Discipline: A Guide for the Perplexed | [3.59](https://www.goodreads.com/book/show/771159) | 105 | 2003 | + +### DevOps + +| Title | Rating | Raters | Published | +| ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------ | --------- | +| The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations | [4.33](https://www.goodreads.com/book/show/26083308) | 3647 | 2016 | +| Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation | [4.18](https://www.goodreads.com/book/show/8686650) | 2969 | 2010 | +| Continuous Integration: Improving Software Quality and Reducing Risk | [3.81](https://www.goodreads.com/book/show/1311542) | 431 | 2007 | +| Devops: A Software Architect's Perspective | [3.63](https://www.goodreads.com/book/show/23363016) | 57 | 2015 | + +### General + +| Title | Rating | Raters | Published | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------ | ---------- | +| The Mythical Man-Month: Essays on Software Engineering | [4.03](https://www.goodreads.com/book/show/13629) | 12295 | 1995 | +| The Unicorn Project | [4.13](https://www.goodreads.com/book/show/44333183) | 4927 | 2019 | +| Release It!: Design and Deploy Production-Ready Software | [4.26](https://www.goodreads.com/book/show/1069827) | 2746 | 2007 | +| A Philosophy of Software Design | [4.14](https://www.goodreads.com/book/show/39996759) | 1516 | 2018 | +| Site Reliability Engineering: How Google Runs Production Systems | [4.23](https://www.goodreads.com/book/show/27968891) | 1980 | 2016 | +| The Software Craftsman: Professionalism, Pragmatism, Pride | [4.33](https://www.goodreads.com/book/show/23215733) | 769 | 2014 | +| Code Simplicity: The Fundamentals of Software | [3.74](https://www.goodreads.com/book/show/13234063) | 501 | 2012 | +| High Performance Browser Networking | [4.50](https://www.goodreads.com/book/show/17985198) | 671 | 2013 | +| 97 Things Every Software Architect Should Know: Collective Wisdom from the Experts | [3.62](https://www.goodreads.com/book/show/5487765) | 686 | 2009 | +| High Performance Web Sites | [4.15](https://www.goodreads.com/book/show/1681559) | 690 | 2007 | +| Software Estimation: Demystifying the Black Art | [4.04](https://www.goodreads.com/book/show/93891) | 911 | 2006 | +| The Design of Design: Essays from a Computer Scientist | [3.76](https://www.goodreads.com/book/show/7157080) | 571 | 2010 | +| Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle, 3rd Edition | [4.10](https://www.goodreads.com/book/show/349416) | 713 | 2016 | +| Waltzing with Bears: Managing Risk on Software Projects | [3.97](https://www.goodreads.com/book/show/665153) | 702 | 2003 | +| Software Engineering at Google: Lessons Learned from Programming Over Time | [4.19](https://www.goodreads.com/book/show/48816586) | 344 | 2020 | +| Ship It!: A Practical Guide to Successful Software Projects | [3.72](https://www.goodreads.com/book/show/363086) | 509 | 2005 | +| The Leprechauns of Software Engineering | [3.84](https://www.goodreads.com/book/show/15874425) | 147 | 2012 | +| Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis | [4.20](https://www.goodreads.com/book/show/36517037) | 112 | 2018 | +| The Site Reliability Workbook: Practical Ways to Implement SRE | [4.34](https://www.goodreads.com/book/show/39687146) | 231 | 2018 | +| Beyond Software Architecture: Creating and Sustaining Winning Solutions | [3.72](https://www.goodreads.com/book/show/224132) | 141 | 2003 | +| 37 Things One Architect Knows | [4.35](https://www.goodreads.com/book/show/29499887) | 100 | 2016 | +| Presentation Patterns: Techniques for Crafting Better Presentations | [3.94](https://www.goodreads.com/book/show/13705465) | 123 | 2012 | +| Chaos Engineering | [4.23](https://www.goodreads.com/book/show/35516296) | 112 | 2017 | +| Container Security: Fundamental Technology Concepts That Protect Containerized Applications | [4.48](https://www.goodreads.com/book/show/48816583) | 52 | 2020 | +| Composing Software | [3.88](https://www.goodreads.com/book/show/43429039) | 85 | 2018 | +| Software Security: Building Security in | [3.63](https://www.goodreads.com/book/show/760789) | 82 | 2006 | + +## Licence + +This work is licensed under +a [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/). \ No newline at end of file