A quick start guide to learning essential software architecture tools, frameworks, design patterns, and best practices
Key Features
Apply critical thinking to your software development and architecture practices and bring structure to your approach using well-known IT standards Understand the impact of cloud-native approaches on software architecture Integrate the latest technology trends into your architectural designs Are you a seasoned developer who likes to add value to a project beyond just writing code? Have you realized that good development practices are not enough to make a project successful, and you now want to embrace the bigger picture in the IT landscape? If so, you’re ready to become a software architect; someone who can deal with any IT stakeholder as well as add value to the numerous dimensions of software development.
The sheer volume of content on software architecture can be overwhelming, however. Software Architecture for Busy Developers is here to help. Written by Stéphane Eyskens, author of The Azure Cloud Native Mapbook, this book guides you through your software architecture journey in a pragmatic way using real-world scenarios. By drawing on over 20 years of consulting experience, Stephane will help you understand the role of a software architect, without the fluff or unnecessarily complex theory.
You’ll begin by understanding what non-functional requirements mean and how they concretely impact target architecture. The book then covers different frameworks used across the entire enterprise landscape with the help of use cases and examples. Finally, you’ll discover ways in which the cloud is becoming a game changer in the world of software architecture.
By the end of this book, you’ll have gained a holistic understanding of the architectural landscape, as well as more specific software architecture skills. You’ll also be ready to pursue your software architecture journey on your own – and in just one weekend!
What you will learn
Understand the roles and responsibilities of a software architect Explore enterprise architecture tools and frameworks such as The Open Group Architecture Framework (TOGAF) and ArchiMate Get to grips with key design patterns used in software development Explore the widely adopted Architecture Tradeoff Analysis Method (ATAM) Discover the benefits and drawbacks of monoliths, service-oriented architecture (SOA), and microservices Stay on top of trending architectures such as API-driven, serverless, and cloud native
The book covers multiple points that could be quite new to "busy developers". I enjoyed the comparison of different architecture disciplines, the introduction to Architecture Tradeoff Analysis Method (ATAM), the hands-on example for sensitivity and trade-off points and the short description and comparison of monoliths, SOA and microservice architecture.
I think if you are in the target audience (and I quote from the book): "This book is for developers who wish to move up the organizational ladder to become software architects. It will help them understand the broader application landscape and how large enterprises deal with software architecture practices." the book does what it promises.
I usually don't set a rating after reject-after-initial-skim, but in this case after a very poor presentation of clean architecture and some amateurish criticism of it I got a bit curious. And went on reading "My top 10 code smells", where 1 is "memory leaks", 3 is "ORM usage" and 4 is "security flaws". Ouch, 1 is well deserved here.
It's very ambitious to cover that many topic in such a short book. From high level architecture description to low level design patterns. It's actually well written, but difficult to say who is target reader. To short and high level for developers, and not much detailed for advanced engineers. Would remember ATAM and possibly would try dapr for cloud applications.
Do not expect a deep explanation of many of the topics handled in this book. Rather than this see the content of this book as a bootstrap to explore in other sources concepts which probably were unknown by yourself before they were mentioned in the book. From this point of view I think the read of this book would be enjoyable.
As other readers shared, this is a great introductory book. I appreciate the honest call of the authors to search for others sources if you want to go deep with further explanations on the concepts and hands on.
This book is great for someone who is a entry level or someone more senior that need refresher of essential architecture and design patterns.
The book covers a too big field and only gives you a few talking points for each topic. If this is the first book about software architecture, you could find a long list of terms that you have to look up. If you already know a bit, this book is rather useless because it is so shallow.