• Complain

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

Here you can read online Diomidis Spinellis - Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2009, publisher: OReilly Media, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

No cover
  • Book:
    Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design
  • Author:
  • Publisher:
    OReilly Media
  • Genre:
  • Year:
    2009
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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 todays 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, youll discover:

  • How Facebooks architecture is the basis for a data-centric application ecosystem
  • The effect of Xens well-designed architecture on the way operating systems evolve
  • How community processes within the KDE project help software architectures evolve from rough sketches to beautiful systems
  • How creeping featurism has helped GNU Emacs gain unanticipated functionality
  • The magic behind the Jikes RVM self-optimizable, self-hosting runtime
  • Design choices and building blocks that made Tandem the choice platform in high-availability environments for over two decades
  • Differences and similarities between object-oriented and functional architectural views
  • How architectures can affect the softwares 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.

Diomidis Spinellis: author's other books


Who wrote Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design? Find out the surname, the name of the author of the book and a list of all author's works by series.

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Beautiful Architecture
Diomidis Spinellis
Georgios Gousios
Editor
Mary Treseler

Copyright 2009 O'Reilly Media, Inc.

OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (.

OReilly and the OReilly logo are registered trademarks of OReilly Media, Inc. Beautiful Architecture and related trade dress are trademarks of OReilly Media, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and OReilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps.

While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

OReilly Media Dedication All royalties from this book will be donated to - photo 1

O'Reilly Media

Dedication

All royalties from this book will be donated to Doctors Without Borders.

SPECIAL OFFER: Upgrade this ebook with OReilly

for more information on this offer!

Please note that upgrade offers are not available from sample content.

Foreword
Stephen J. Mellor

The challenges of developing high-performance, high-reliability, and high-quality software systems are too much for ad hoc and informal engineering techniques that might have worked in the past on less demanding systems. The complexity of our systems has risen to the point where we can no longer cope without developing and maintaining a single overarching architecture that ties the system into a coherent whole and avoids piecemeal implementation, which causes testing and integration failures.

But building an architecture is a complex task. Examples are hard to come by, due to either proprietary concerns or the opposite, a need to sell a particular architectural style into a wide range of environments, some of which are inappropriate. And architectures are big, which makes them difficult to capture and describe without overwhelming the reader.

Yet beautiful architectures exhibit a few universal principles, some of which I outline here:

One fact in one place

Duplication leads to error, so it should be avoided. Each fact must be a single, nondecomposable unit, and each fact must be independent of all other facts. When change occurs, as it inevitably does, only one place need be modified. This principle is well known to database designers, and it has been formalized under the name of normalization . The principle also applies less formally to behavior, under the name factoring , such that common functionality is factored out into separate modules.

Beautiful architectures find ways to localize information and behavior. At runtime, this manifests as layering , the notion that a system may be factored into layers, each representing a layer of abstraction or domain .

Automatic propagation

One fact in one place sounds good, but for efficiencys sake, some data or behavior is often duplicated. To maintain consistency and correctness, propagation of these facts must be carried out automatically at construction time.

Beautiful architectures are supported by construction tools that effect meta-programming , propagating one fact in one place into many places where they may be used efficiently.

Architecture includes construction

An architecture must include not only the runtime system, but also how it is constructed. A focus solely on the runtime code is a recipe for deterioration of the architecture over time.

Beautiful architectures are reflective . Not only are they beautiful at runtime, but they are also beautiful at construction time, using the same data, functions, and techniques to build the system as those that are used at runtime.

Minimize mechanisms

The best way to implement a given function varies case by case, but a beautiful architecture will not strive for the best. There are, for example, many ways of storing data and searching it, but if the system can meet its performance requirements using one mechanism, there is less code to write, verify, maintain, and occupy memory.

Beautiful architectures employ a minimal set of mechanisms that satisfy the requirements of the whole. Finding the best in each case leads to proliferation of error-prone mechanisms, whereas adding mechanisms parsimoniously leads to smaller, faster, and more robust systems.

Construct engines

If you wish to build brittle systems, follow Ivar Jacobsons advice and base your architecture on use cases and one function at a time (i.e., use controller objects). Extensible systems, on the other hand, rely on the construction of virtual machinesengines that are programmed by data provided by higher layers, and that implement multiple application functions at a time.

This principle appears in many guises. Layering of virtual machines goes back to Edsger Dijkstra. Data-driven systems provide engines that rely on coding invariants in the system, letting the data define the specific functionality in a particular case. These engines are highly reusableand beautiful.

O(G), the order of growth

Back in the day, we thought about the order of algorithms, analyzing the performance of sorting, say, in terms of the time it takes to sort a set of a certain number of elements. Whole books have been written on the subject.

The same applies for architecture. Polling, for example, works well for a small number of elements, but is a response-time disaster as the number of items increases. Organizing everything around interrupts or events works well until they all go off at once. Beautiful architectures consider the direction of likely growth and account for it.

Resist entropy

Beautiful architectures establish a path of least resistance for maintenance that preserves the architecture over time and so slows the effects of the Law of System Entropy, which states that systems become more disorganized over time. Maintainers must internalize the architecture so that changes will be consistent with it and not increase system entropy.

One approach is the Agile concept of the Metaphor , which is a simple way to represent what the architecture is like. Another is extensive documentation and threats of unemployment, though that seldom works for long. Usually, however, it generally means tools, especially for generating the system. A beautiful architecture must remain beautiful.

These principles are highly interrelated. One fact in one place can work only if you have automatic propagation, which in turn is effective when the architecture takes construction into account. Similarly, constructing engines and minimizing mechanisms support one fact in one place. Resisting entropy is a requirement for maintaining an architecture over time, and it relies on the architecture including construction and support for propagation. Moreover, a failure to consider the way in which a system will likely grow will cause the architecture to become unstable, and eventually fail under extreme but predictable circumstances. And combining minimal mechanisms with the notion of constructing engines means that beautiful architectures usually feature a limited set of patterns that enable construction of arbitrary system extensions, a kind of expansion by pattern.

In short, beautiful architectures do more with less.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design»

Look at similar books to Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design»

Discussion, reviews of the book Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.