Software Architecture by Example
Using C# and .NET
Design system solutions using modern architectural patterns and practices. This book discusses methods to keep a system responsive, even when it is being constantly updated, extending a system’s functionality without changing the core code, methods of maintaining data history, and designing a distributed transactional system.
Over the past few months I have been diving deeper into Software Architecture in order to gain deeper understanding of the complex systems us developers are required to develop. As our users and customers become more computer and technology savvy so our applications become more complex to cater for the user functionality demands and coping with scalable demand.
When it comes to software architecture, it is still a somewhat of a new-ish field and it is actually harder to find solutions, because in many instances we may actually be covering new ground.
For architects, many problems present unique challenges because they conflate the exact environment and circumstances of your organisation - what are the chances that someone has encountered exactly this scenario and blogged it or posted about it on stack overflowSoftware Architecture : The Hard Parts
Its often quite difficult to find actual hard implementation details of many of the things that architects discuss and present. Without actually trying to implement the ideas for yourself.
Having read both Fundamentals of Software Architecture and Software Architecture: The Hard Parts both of which were co-authored by Mark Richards I really enjoyed and learned so much from his work and he has helped to propel my knowledge and understanding of software architecture to new heights. I was looking for a book that could help focus all this new found skills and expertise in C# and .Net.
As fate often does dictate, I was also catching up on some episodes on one of my favourite .net focused podcasts, The .net core podcast, where Jamie, the host, was interviewing Paul Michaels the author of the book, Episode 103 - Software Architecture with Paul Michaels and I really enjoyed the interview and listening to the authors points of view. I felt it would be a disservice not to at least buy the book. I was delighted to discover that Mark Richards had provided a foreword for this book.
What I like about this book
This is book is in no way as thorough and packed with information as the other two books I mentioned previously, but it does not mean to say that it isn't as valuable and have some great insights on its own. In fact, if you've read the other two, you might actually find this book a refreshing take. The author breaks down some of the concepts provided in the other books and provides a .net focused implementation scenarios.
There are more Code Samples in this book, which help to provide context. Architecture based books can become a bit bland and over-powering at times and I feel the author does a decent job of trying to find the middle ground. Than being said, I am actually becoming less of a fan of code samples in books, in that they do become a little tiresome to read.
The author actually tackles some pretty non-trivial examples in the book, but yet does actually manage to explain with ease and clarity, which I was rather impressed by!
Who should read this book
I have to say, I am finding it difficult to suggest who should read this book. I think it is targeted towards the intermediate developer, which is probably the right sort of audience. But personally I would suggest it as a great companion read if you are also diving into the two books I suggested earlier