Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
A developer-friendly, practical and pragmatic guide to lightweight software architecture, technical leadership and the balance with agility.
This book is a practical, pragmatic and lightweight guide to software architecture, specifically aimed at developers, and focussed around the software architecture role and process.
Application architecture is what we as software developers are probably the most familiar with. In this context, I’m going to define an application as being a single deployable unit, written in a single technology such as a single-page JavaScript/Angular application, an iOS or Android mobile app, a Java server-side Spring MVC web application, a .NET desktop application, etc.
Application architecture is about looking inside the application to understand how it’s designed and built. This includes how the application has been decomposed into building blocks (e.g. components, layers, packages, namespaces, etc) as well as understanding the patterns, frameworks and libraries in use. In essence, it’s predominantly about code, and the organisation of that code.
I like to think of system architecture as one step up in scale from application architecture. If you look at most software systems, they’re actually composed of multiple deployable units (e.g. applications or datastores), each of which might be built using different technologies. As an example, you might have a software system comprising of a client-side iOS mobile app communicating via JSON/HTTPS to a Java server-side Spring MVC web application, which itself consumes data from a MySQL database. Since each of these three deployable units (the mobile app, the web app and the database) is built using a different technology, each of them will have their own internal application architecture.
However, for the software system to function as a whole, thought needs to be put into bringing all of those separate deployable units together. In other words, you also need to consider the overall structure of the software system at a high-level, and the integration of the various parts.
About the book
Architecture
What is “software architecture”?
Architects
The software architecture role
Technical leadership
Software architects and coding
The skills and knowledge of a software architect
Architecting
Managing technical risks
Software architecture in the delivery process
Appendices
Appendix A: Financial Risk System