This review was originally printed in the September 2009 edition of the UKUUG newsletter, which is now defunct.
Title: Beautiful Architecture
Authors: Diomidis Spinellis, Georgios Gousios
Another release in the O’Reilly “Beautiful” series, this text consists of a number of articles by different authors which claim to “reveal the hidden beauty in software design”. Starting off with the question of “what is architecture?”, the articles move from the basics of architecture design, through some detailed explanations of specific examples before closing off with a round up of classic architecture designs.
Out of all the articles, I found the chapter on Xen particularly interesting – virtualisation is still a hot topic, but many articles focus on the performance details rather than the fundamental architecture choices. The two chapters on Web architectures, including the Facebook Platform, are well worth a read if you work with Web applications – the direction in which software seems to be moving. I was also pleased to see the acknowledgement by the authors that a single chapter cannot hope to cover any one architecture in depth, so several suggestions of further reading are made for the reader who wishes to explore further.
One point where this book does excel, in comparison to the other Beautiful texts I’ve read, is having a consistent theme throughout. Even though the articles are written by different authors, there is a clear strand throughout the entire book, and progression from chapter to chapter. As a result, you can read the whole text from start to finish and feel as if you’ve had the complete story, as opposed to a loose collection of articles. Despite this, I still found myself skipping some chapters, as my idea of software architecture is more of a gut feeling than any hard and fast rules (the problem with any rules being that you always need to bend or break them at some point). Furthermore, whilst the ideas presented in the book are interesting, the unfortunate reality is that most software engineers, developers and architects will be maintaining someone else’s code as opposed to designing a beautiful architecture from scratch. However, if you are fortunate enough to be starting up a new project with the freedom to design the architecture, this book is worth a read and you may pick up a few ideas for your software.