I'm in the middle of designing a new architecture for scientific applications and came across this "mine". Just had a pic, but looks something to add to my bookshelf.

Like the authors say:  Developers "repeat one another's mistakes rather than building on one another's successes." (Where have I heard this before?).

Topics discussed for roughly 50 applications:

  • How open source applications are structured, and why. 
  • What are each program's major components? 
  • How do they interact? 
  • And what did their builders learn during their development?


Link: http://www.aosabook.org/en/index.html