There is a huge difference between a senior developer and a software architect. As an architect, it’s required that you have more experience to be able to design an end to end solution. The job of a software architect is to own the architecture of the software. Some of these are its architecture books, whereas other books focus on a specific problem domain.
I would recommend these books as a must read for any software architect or developer regardless of language or background. (In addition to the 5 Best Design Pattern Books)
(By: Nick Rozanski, E. Woods)
This software architecture book is a must read for beginners. This book focuses on many common mistakes people make at the beginning of the software architect job. This book can certainly help you do your job more efficiently.
This book can be a good companion and reference for a beginner through intermediate level. It gives an excellent overview of what a system architect has to go through day in and day out to achieve success. The book contains a wealth of advice on what to pay and not pay attention to in any particular stage of architectural development. The authors clearly speak from personal experience. Even if you are not an architect it is a great book to buy so you understand what to expect out of one. More details about this book can be found at – http://www.viewpoints-and-perspectives.info/
(By: Robert C. Martin)
This book has dozens of practical but concise examples illustrating everything from relatively simple object-oriented design concepts such as Meyer’s Open/Closed Principle to subtle and complex issues with class and package dependencies. The patterns discussed in this book is down-to-earth and easily understood. Robert does a wonderful job of explaining each design pattern, demonstrating their use through code, and placing them within the context of his design principles. The examples are numerous and, with a few exceptions, well written. I would also recommend this book to an Object-Oriented Design newbie/student.
(By: Michael Feathers)
This book does an excellent job of articulating the problems and scenarios, using clear examples from C, C++, Java, and C#. Many of the code examples look a lot like real examples we come across all the time (they don’t appear to be fabricated). The author defines “legacy code” as “code without tests.” It doesn’t matter whether the code was written last week or ten years ago. There is more emphasis on old code that nobody understands, mainly because it is messier and harder to work with. Working with legacy code isn’t fun, but this book helps make it as painless as possible.
(By: Luke Hohmann)
This book delivers on its promise to discuss the larger business realities of creating software products. If you’re a software architect or dream of being one, this is a must-read book. The book is nicely segmented into logical chapters, making it an excellent reference. Although it covers classic architecture issues such as portability, usability, performance, layering, API design, and security, the truly valuable material is on the business and product management side of the fence, which often gets ignored, or left till late in the process.
(By: Gregor Hohpe, Bobby Woolf)
The book is organized into 65 patterns. Each pattern shows one typical problem in integrating applications, and how it is solved. Each pattern gives enough implementation details so it is clear how it would work, and an example or two so it is clear how it works in practice. This book also contains in-depth coverage of software architecture using asynchronous communication. It’s worth reading and re-reading if you’re working with systems integration projects or writing integration software yourself.
Hope you found this list useful! What are the best Software Architecture books you have read? Please don’t forget to share with me in comments.