
The Architecture of Open Source Applications - pcr910303
http://www.aosabook.org/en/index.html
======
tony
Favorites:

\- SQLAlchemy by Michael Bayer:
[https://www.aosabook.org/en/sqlalchemy.html](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](https://www.aosabook.org/en/llvm.html)

\- Audacity by James Crook:
[https://www.aosabook.org/en/audacity.html](https://www.aosabook.org/en/audacity.html)
(interesting mentionings of wxwigets)

Note that pretty much everything in volume 1 and 2 is interesting, though!

What would be nice to see, non-exhaustive:

\- Blender: Especially 2.80, an analysis of its GUI/widgets, integrated python
scripting, and everything else (wiring into graphics cards, rendering,
shapes). There's a lot of stuff that could be covered

\- Gimp / Inkscape / Krita

\- Saltstack / Ansible / Fabric or PyInvoke : These have nice abstractions on
top of system functionality / programs and delivery magic that'd be fun to go
into

\- GTK, QT

\- Tiling window managers, e.g. i3, swaywm, awesome

\- Wayland, Xorg

\- Kdevelop, VSCode, Atom, Electron

\- React, Vue, Angular (it'd be nce to see more js)

\- Android SDK

\- Unity3D SDK, Unreal SDK

\- .NET Core

\- black (python formatter), clang-format, prettier

\- docutils, sphinx, pandoc

\- systemd, mesa, cairo, pulseaudio

\- implementations of python (cpython), typescript, lua, luajit, haskell ghc,
swift

~~~
persistent
Really curious why you'd want to study these unless you already had strong
fundamentals in application architecture and are not afraid to expose yourself
to antipatterns. GIMP/GTK in particular are a cornucopia of terrible ideas
stemming from ignorance and prejudice.

~~~
ngold
What's wrong with gimp? Been using it for a decade with no trouble.

~~~
RobertKerans
Poor/questionable [initial] architectural decisions at a codebase level don't
mean that the end product doesn't work (WordPress IMO being a very good
example of this -- famously crufty codebase but the product definitely does
the job). Just means it's not _necessarily_ a great subject for an
architectural breakdown.

~~~
mattl
WordPress is a fork of b2.

------
sytringy05
This is interesting, however I'd say most of the software on this list not
relevant for 99% of software architects / engineers ( ie all of us working on
web / server side applications for BigCorp).

It's not the fault of the authors of course, in my experience there's not many
organisations interested in explaining stuff like this out in the open.

It would be great to see the architecture of: \- a large scale distributed
system \- a typical web app with UI, web tier, data tier maybe thrown in some
eventing for good measure. \- maybe anything else that needs to talk across a
network all the time.

Nick Craver from Stackoverflow does a great job of explaining this for how SO
do it, any other good examples would be great.

~~~
rahimnathwani
In case anyone else is curious: [https://nickcraver.com/blog/2016/02/03/stack-
overflow-a-tech...](https://nickcraver.com/blog/2016/02/03/stack-overflow-a-
technical-deconstruction/)

------
melenaboija
Implementing QuantLib is also an interesting read on how the open source C++
library was built.

Although is a library for a small niche is interesting how Luigi Ballabio
explains the process with some comments of why some decisions have been taken
and some corrections/modifications that happened in the library.

[https://www.implementingquantlib.com/posts/implementing-
quan...](https://www.implementingquantlib.com/posts/implementing-
quantlib.html)

------
shrthnd
Great article on Continuous Integration:
[http://www.aosabook.org/en/integration.html](http://www.aosabook.org/en/integration.html)

------
hosteur
I’m confused. Is this an ad?

~~~
runningmike
Imho a bit. Its a Cc by licensed book. But part of the revenue is for the Oss
projects who participated. You can get a download without costs.

