Do you dream of crafting software architectures that are robust, scalable, and maintainable? In "Fundamentals of Software Architecture: An Engineering Approach," renowned practitioners Mark Richards and Neal Ford equip you with the essential knowledge and tools to become a confident software architect.
Why choose this book?
Unlock the secrets of successful software architecture:
More than just a textbook, this is your go-to guide for software architecture:
Invest in your software architecture journey. Order your copy of "Fundamentals of Software Architecture" today and:
This book examines:
Mathematicians create theories based on axioms, assumptions for things indisputably true. Software architects build axioms as well, but the software world is, well, softer than mathematics: fundamental things continue to change at a rapid pace in the software world.
The software development ecosystem exists in a constant state of dynamic equilibrium: while it exists in a balanced state at any given point in time, it exhibits dynamic behavior over the long term. A great modern example of the nature of this ecosystem follows the ascension of containerization and the attendant changes wrought: tools like Kubernetes didn’t exist a decade ago, yet now entire software conferences exist to service its users. The software ecosystem changes fractally: one small change causes another small change; when repeated hundreds of time, it generates a new ecosystem.
Architects have an important responsibility to continue to question assumptions and axioms left over from previous eras. Many of the books about software architecture were written in an era that only barely resembles the current world.
In fact, the authors believe that we must question fundamental axioms on a regular basis, in light of improved engineering practices, operational ecosystems, software development processes—everything that makes up the messy, dynamic equilibrium where architects and developers work each day.
Careful observers of software architecture over time witnessed a slow evolution of capabilities. Starting with the engineer practices of eXtreme Programming, continuing with Continuous Delivery, the DevOps revolution, microservices, containerization, and now cloud-based resources, all of these innovations lead to new capabilities and tradeoffs. As a good illustration of this perspective shift, for many years, the tongue-in-cheek definition of software architecture was “the stuff that’s hard to change later”. Then, the microservices architecture style appeared, where change is a first-class design consideration.
Each new era requires new practices, tools, measurements, patterns, and a host of other changes. This book looks at software architecture in modern light, taking into account all the innovations from the last decade, along with some new metrics and measures suited to the new structures and perspectives now available.
This book won’t make someone a software architecture overnight—it’s a nuanced field with many facets. We want to provide existing and burgeoning architects a good modern overview of software architecture and its many aspects, from structure to soft skills. While this book covers well known patterns, we take a new approach, leaning on modern lessons learned, tools, engineering practices, and other input to build a modern book on software architecture.