The Architecture of Open Source Applications

Architects look at thousands of buildings during their
training, and study critiques of those buildings written
by masters. In contrast, most software developers only
ever get to know a handful of large programs
well—usually programs they wrote
themselves—and never study the great programs of
history. As a result, they repeat one another's mistakes
rather than building on one another's successes.

Our goal is to change that. In these two books, the authors of
four dozen open source applications explain how their software
is structured, and why. What are each program's major
components? How do they interact? And what did their builders
learn during their development? In answering these questions,
the contributors to these books provide unique insights into how
they think.

If you are a junior developer, and want to learn how your
more experienced colleagues think, these books are the place
to start. If you are an intermediate or senior developer,
and want to see how your peers have solved hard design
problems, these books can help you too.

Contributing

Dozens of volunteers worked hard to create this book,
but there is still lots to do.
You can help by reporting errors,
by helping to translate the content into other languages and formats,
or by describing the architecture of other open source projects.
Please contact us the coordinators for various translations listed below,
or mail us directly at aosa@aosabook.org
if you would like to start a new translation or write a chapter yourself.