
The architecture of open source applications
by Amy Brown, Greg Wilson · first published 2011
257mentions
204recommended by
219HN commenters
2011–2026first – last mentioned
93% recommend5% neutral1% critical
Why HN recommends it
Chapters by the developers of real projects (GHC, SQLAlchemy, Graphite, HDFS) explain design decisions and structure. Suits programmers wanting to learn medium-to-large system architecture by studying proven software.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.
Read freeOnline edition






…surface knowledge of the topic at hand. Sometimes I will buy a book because it was cited on Wikipedia. Does the OP know about the books people publish online? Real World Haskell, Dive Into Python, The Architecture of Open Source Applications, Clever Algorithms to mention a few CS-related books. Then there are a bunch of books on analog and digital electronics, math and statistics, all published on the web. A book does not have to be in the…
on “Is there a new geek anti-intellectualism?” ↗One more I missed regarding review of architecture, code structure/design of OSS: The Architecture of Open Source Applications (Vol 1 & 2) https://www.amazon.com/Architecture-Open-Source-Applications...
on “Ask HN: How’d you go from a noodler to writing large well structured programs?” ↗…it gets. And as an eccentric choice in a similar format, may I suggest cmForth[6], perhaps paired with Footsteps in an empty valley[7]? Also, though this is not precisely what you’re asking for, The architecture of open-source applications and its sequels[8] have the original designers’ reflections on some well-known codebases. [1] http://mirrors.ctan.org/info/knuth-pdf/tex/tex.pdf [2] http://mirrors.ctan.org/info/knuth-pdf/mf/mf.pdf…
on “Exploring the Internals of Linux v0.01” ↗http://www.aosabook.org/en/ "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 buildin
on “Ask HN: How best to learn software design principles?” ↗Does anyone have any good resources for learning how to better architect systems? Other than, say, The Architecture of Open Source Applications: http://aosabook.org/en/index.html Reading source code of prominent projects is a good way to get better, but it's hard to understand the architecture if you aren't aware of the design constraints/requirements that led it to be the way. Surely there must
on “Great Programmers (2004)” ↗a really solid, perhaps unique, library that, as far as i can tell, completely addresses the "impedence mismatch" argument. if you're directly using a database api in a structured way, you've probably already reimplemented the sqlalchemy core, and refactoring your program to use sqlalchemy will give you an orm, should you want one, and make your code portable across database implementations even
on “SQLAlchemy 0.9.0 Released” ↗Nginx and Git. Nginx has a lot of respect on the market for handling high concurrency as well as exhibiting high performance and efficiency. I don't even have to speak about the Git architecture. It speaks plainly for itself. There's a series of books called The Architecture of Open Source Applications that does justice to this topic http://aosabook.org/en/index.html
on “Ask HN: Best-architected open-source business applications worth studying?” ↗Favorites: - SQLAlchemy by Michael Bayer: https://www.aosabook.org/en/sqlalchemy.html (nice observation of core language on top of SQL, then the separate declarative/orm system) - LLVM by Chris Lattner: https://www.aosabook.org/en/llvm.html - Audacity by James Crook: https://www.aosabook.org/en/audacity.html (interesting mentionings of wxwigets) Note that pretty much everything in volume 1 and
on “The Architecture of Open Source Applications” ↗It always puts a bad taste in my mouth when information/knowledge is locked behind a pay-wall. It frustrates me when I think that someone somewhere is getting turned down from what they want to learn from because they had no money to pay for it or doesn't have the means to pay for it. I know the authors should profit but why can't they do something like https://mitpress.mit.edu/sicp/ or http://deb
on “Our Django Book is Launched” ↗ProseMirror is easily the best source code I've ever worked with. The components are so well architected, that inside the codebase there's a 100 page book on software design principles waiting to come out. I'm serious. Marijn Haverbeke should certainly write a AOSA (http://aosabook.org/en/index.html) style piece on how & why the software is architected in such way. What sets ProseMirror apart fro
on “ProseMirror – A toolkit for building rich-text editors on the web” ↗I found that another hard thing that feels like a prerequisite for leveling up further is getting the feel for design/architecture of medium-sized systems. There's a pretty awesome resource for that particular need - the series of books called "The Architecture of Open Source Applications". http://aosabook.org/en/index.html (The books are CC and free to read on-line :)) I'm just through the few
on “Build Your Own Text Editor” ↗Highly focused on metrics, code organization and project stakeholders, with little discussion of actual architectural choices. I particularly hate the "lets run static analyzer on this project, and use that to make a judgement" step they all seem to do. For actual introductions to very specific architectures adopted by open-source software and the reasoning behind, see [1]. 1: http://aosabook.or
on “Delft Students on Software Architecture: DESOSA 2017” ↗There are dozens at the Architecture of Open Source Applications ebook/site: http://aosabook.org/en/index.html As someone who only really gets exposure to web tech, it was fascinating how other types of software is architected, too.
on “Ask HN: Are there any openly available software architecture documents?” ↗You can get a good view on some architectures from AOSA, thought it may not be as focused on web as you're looking for: http://aosabook.org/en/index.html A good example is Scalable Web Architecture and Distributed Systems by Kate Matsudaira: http://aosabook.org/en/distsys.html
on “Ask HN: Where can I see many examples of real companies' software architecture?” ↗The Architecture of Open Source Applications book[0] gives a high level overview on many open source projects. It's a good starting point to dive into the code of these projects. [0] http://aosabook.org/en/index.html
on “Ask HN: What source code is worth studying? ” ↗