19 Software Architecture Books
19 Software Architecture Books
Software architecture has become an important part of every software project. When
building a solid software architecture, you select the important parts of a system,
think how these parts fit together, and take crucial decisions in designing these
systems. It is a foundation of any software development project.
3. 97 Things Every Software Architect Should Know: Collective Wisdom from the
Experts by Richard Monson-Haefel
The third one on the list of software architecture books is �97 things every
software architect should know�. In this truly unique technical book, today�s
leading software architects present valuable principles on key development issues
that go way beyond technology. More than four dozen architects, including Neal
Ford, Michael Nygard, and Bill de Hora, offer advice for communicating with
stakeholders, eliminating complexity, empowering developers, and many more
practical lessons they�ve learned from years of experience. Among the 97 principles
in this book, you�ll find useful advice such as: �Simplicity before generality, use
before reuse� � Kevlin Henney. To be successful as a software architect, you need
to master both business and technology. This book tells you what top software
architects think is important and how they approach a project. If you want to
enhance your career, this book is essential reading.
10. Continuous Delivery: Reliable Software Releases Through Build, Test, and
Deployment Automation by Jez Humble, David Farley
Getting software released to users is often a painful, risky, and time-consuming
process. This book sets out the principles and technical practices that enable
rapid, incremental delivery of high quality, valuable new functionality to users.
Through automation of the build, deployment, and testing process, and improved
collaboration between developers, testers, and operations, delivery teams can get
changes released in a matter of hours sometimes even minutes no matter what the
size of a project or the complexity of its code base. Jez Humble and David Farley
begin by presenting the foundations of a rapid, reliable, low-risk delivery
process. Then, they introduce the deployment pipeline, an automated process for
managing all changes, from check-in to release. And they discuss the ecosystem
needed to support continuous delivery, from infrastructure, data and configuration
management to governance. The authors introduce techniques, including automated
infrastructure management and data migration, and the use of virtualization. For
each, they review key issues, identify best practices, and demonstrate how to
mitigate risks. Coverage includes: automating all facets of building, integrating,
testing, and deploying software, implementing deployment pipelines at team and
organizational levels, improving collaboration between developers, testers, and
operations, developing features incrementally on large and distributed teams,
implementing an effective configuration management strategy, automating acceptance
testing, from analysis to implementation, testing capacity and other non-functional
requirements and implementing continuous deployment and zero-downtime releases.
Also, they cover how to manage infrastructure, data, components, and dependencies
and how to navigating risk management, compliance, and auditing.
11. Scalability Rules: 50 Principles for Scaling Web Sites by Martin L. Abbott,
Michael T. Fisher
It�s an essential read for anyone dealing with scaling an online business. This
book ensures strategic design principles are applied to everyday challenges. It is
an insightful, practical guide to designing and building scalable systems. With the
complexity of modern systems, scalability considerations should be an integral part
of the architecture and implementation process.
Abbott and Fisher transform scalability from a �black art� to a set of realistic,
technology-agnostic best practices for supporting hyper growth in nearly any
environment, including both frontend and backend systems. For architects, they
offer powerful new insights for creating and evaluating designs. For developers,
they share specific techniques for handling everything from databases to state. For
managers, they provide invaluable help in goal-setting, decision-making, and
interacting with technical teams. Whatever your role, you�ll find practical benefit
guidance for setting priorities-and getting the maximum.
17. Reactive Design Patterns by Roland Kuhn Dr., Brian Hanafee, Jamie Allen
Reactive Design Patterns is a clearly written guide for building message-driven
distributed systems that are resilient, responsive, and elastic. In this book,
you�ll find patterns for messaging, flow control, resource management, and
concurrency, along with practical issues like test-friendly designs. All patterns
include concrete examples using Scala and Akka.
Another source of good software development literature is GitHub, where you can
find great software architecture books about Docker, Elasticsearch, TDD, DDD, BDD,
CI, etc. in pdf.