The Architecture of Open Source Applications

If you enjoy these books, you may also enjoy Software Design by Example in Python and Software Design by Example in JavaScript .

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.

AOSA Volume 1

Volume 1 cover

Buy Volume I

AOSA Volume 2

Volume 2 cover

Buy Volume II

The Performance of Open Source Applications

POSA Cover

Buy POSA

500 Lines or Less

500Lines Cover

Buy 500 Lines

Introduction Michael DiBernardo
3 Clustering by Consensus Dustin J. Mitchell
4 Contingent: A Fully Dynamic Build System Brandon Rhodes and Daniel Rocco
5 A Web Crawler With asyncio Coroutines A. Jesse Jiryu Davis and Guido van Rossum
7 DBDB: Dog Bed Database Taavi Burns
9 A Flow Shop Scheduler Dr. Christian Muise
13 A 3D Modeller Erick Dransch
14 A Simple Object Model Carl Friedrich Bolz
16 A Pedometer in the Real World Dessy Daskalov
17 The Same-Origin Policy Eunsuk Kang, Santiago Perez De Rosso, and Daniel Jackson
18 A Rejection Sampler Jessica B. Hamrick
19 Web Spreadsheet Audrey Tang
20 Static Analysis Leah Hanson
21 A Template Engine Ned Batchelder
22 A Simple Web Server Greg Wilson

License and Royalties

This work is made available under the Creative Commons Attribution 3.0 Unported license. Please see the full description of the license for details. All royalties from sales of these books will be donated to Amnesty International.

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 gvwilson@third-bit.com if you would like to start a new translation or write a chapter yourself.

AltStyle によって変換されたページ (->オリジナル) /