Poseidon's GoldPoseidon's Gold All Your Worth: The Ultimate Lifetime Money PlanAll Your Worth: The Ultimate Lifetime Money Plan Lords of the Sea: The Epic Story of the Athenian Navy and the Birth of Democracy (Playaway Adult Nonfiction)Lords of the Sea: The Epic Story of the Athenian Navy and the Birth of Democracy Welcome to Harmony (Center Point Premier Romance (Large Print))Welcome to Harmony (Center Point Premier Romance (Large Print)) Fox EvilFox Evil The Merchant Of VeniceThe Merchant Of Venice
» » Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design
Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design
Title:

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design

Author:
Diomidis Spinellis
ISBN:
059651798X
PDF book size:
1429 kb
ePub book size:
1417 kb
Fb2 book size:
1553 kb
Other formats:
lit txt mobi lrf
ISBN13
978-0596517984
Rating:
4.3 of 5
Votes:
960
Publisher:
O'Reilly Media; 1 edition (January 30, 2009)
Language:
English
Subcatergory:
Programming
Pages:
430

What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today's leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose. Some of the engineers in this book reveal how they developed a specific project, including decisions they faced and tradeoffs they made. Others take a step back to investigate how certain architectural aspects have influenced computing as a whole. With this book, you'll discover:

How Facebook's architecture is the basis for a data-centric application ecosystemThe effect of Xen's well-designed architecture on the way operating systems evolveHow community processes within the KDE project help software architectures evolve from rough sketches to beautiful systemsHow creeping featurism has helped GNU Emacs gain unanticipated functionalityThe magic behind the Jikes RVM self-optimizable, self-hosting runtimeDesign choices and building blocks that made Tandem the choice platform in high-availability environments for over two decadesDifferences and similarities between object-oriented and functional architectural viewsHow architectures can affect the software's evolution and the developers' engagement

Go behind the scenes to learn what it takes to design elegant software architecture, and how it can shape the way you approach your own projects, with Beautiful Architecture.

Download Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design by Diomidis Spinellis free
7 Reviews
  • A excepted more ...

  • It is not the kind of book you use but reading it gives you an idea of what to consider in designing systems. More real world examples using real world projects including both successes and failures will make the book more useful

  • Beautiful Architecture is a collection of articles about architecture.
    The books starts with a "What is architecture" article (AMAZING! almost any book about architecture has that! can't we finally agree and deprecate this discussion?!)
    Other articles arrange by topics: enterprise (server) architecture, client architecture, etc...

    What really annoyed me while reading this book, and lowered two stars for it, is the repeating rhythm of the articles:
    They start slow and punctuality (That's ok), getting warmer, getting into a really interesting point and puff - suddenly the article ends.
    It's like making many preparations (warming the oven, preparing raw materials), putting the cake in, but closing it over before the cake is done. Shame!

    Overall I would buy this book to get leads to new areas, not to really cover it.

  • The book suffers from a "too many cooks" problem; it is a very timely book but lacks cohesion across chapters. I agree with the other reviewer that it has way too many pages about nothing. This is simply a good example of where each chapter is written by an "authority" on architecture but the chapters are disjointed and lack a consistent message. I loved the title, and idea behind the book, but it overpromises and underdelivers. But there are some redeeming features.

    However, three chapters are excellent and make up for about a third of the forty dollars that I spent on this book. First, the preface and its discussion of architectural principles and properties is one of the best discussions of those topics. I have not seen that elsewhere. Chapter 1 ("what is architecture") and chapter 2 (a contrast between a system with a messy architecture with another with a thoughtfully designed one) are excellent. Unfortunately, all this interesting content stops on page 43 and very little worth the time reading the remaining 374 pages!

    I hope that the publisher would come out with a shrunk down 72 pager condensed version of this book that is more like the substance I've come to expect from O'Rielly books.

    This book is best checked out at your local library. I would instead recommend buying Jan Bosch's older but still unbeatable "Design and Use of Software Architectures" book.

  • This is a fairly interesting book, but I'm not sure that it gives much insight into what 'Beautiful Architecture' really is.

    I enjoyed the anecdotes and history related in the book, but not sure if it made me a better developer.

  • Excellent book, Very useful reference

    Rather than being a boring book , Beautiful Architecture, is a well-written and very informative collection of interesting example from real life that should be known by anyone with interest in this field. Even if the systems presented in the book are on different platforms, using totally different technologies, and developed in different periods of time, all share some important aspects related to the architecture.

    The book is divided in five parts. The first part is a general presentation on what is an architecture and an example of two software systems, very similar from many aspects like size, appliance, programming language, operating system and even so, one was aborted and one is used in our days. The first one was abandoned mainly because the lake of the design from the binging, hard to add new features, and the amount of effort required to rework, refactor, and correct the problems with the code structure had become prohibitive. The second one, is still in production, still being extended and changed daily. The actual architecture for the second one it is remarkably similar to the original design, with a few notable changes, and a lot more experience to prove the design was right.

    The second part is about the "Enterprise Application Architecture". In this part is 4 systems are presented: the scaling problem faced in case of a massively multiplayer online games, the grow of a system for image storage and retrieval for retail offerings of portraits, an example resource-oriented system in which is presented the importance of Web Services in an enterprise application, and in the last chapter the Facebook application system is presented, and how the Facebook Platform was created.

    Part three is about System Architecture. It starts by presenting the Xen virtualization platform that has grown from an academic research effort to major open source project. A large part of its success is due to it being released as open source. Then a fault tolerance system is presented, by reviewing the Tandem Operating System designed between 1974 and 1976 and shipped between 1976 and 1982. Chapter nine presents JPC, an x86 PC Emulator in Pure Java. Another Java implementation is presented in chapter ten: Jikes RVM is a successful research virtual machine, providing performance close to the state-of-the-art in a flexible and easy-to-extend manner.

    In the fourth part, the End-User Application Architectures are presented. The GNU Emacs text editor architecture is described, and also a comparison with other software like Eclipse and Firefox is provided. Then the KDE project, one of the biggest Free Software, is presented in chapter twelve.

    Languages and Architecture are presented in the last part of the book. This parts starts with a comparison between functional and object-oriented programming, continue with some examples of object-oriented programming and ends with some thoughts on beautiful buildings with problems.

    From the beginning of a project is very important to have a clear view of the architecture and technologies used, because after some iterations is really hard, or in some situation impossible, to change the entire architectures and in some cases ignoring the architecture can lead to a project fail. A good conclusion for the book would be that: "An architecture influences almost everything that comes into contact with it, determining the health of the codebase and also the health of the surrounding areas."