This is a very early draft preview of the upcoming book.

All software is composed of from a large number of programming statements. Organizing the code becomes a central concern and over the years many different approaches have been found to be successful for solving different kinds of problems.

Most software applications written today are not written from a completely blank slate. Code frameworks and widely-accepted mental models try to reduce the overall effort required to build an application.

This chapter describes those architectures which have proven themselves to be useful over and over again. If you've already been doing computer programming for some time, you'll find that some of these architectural patterns are so ingrained in your thinking that you might be surprised to see them identified as such. But all of our programming models originated somewhere, and all have roots in the best parts of computer science.

The von Neumann Architecture

TBA

Layers

TBA

Pipelines

TBA

Services

TBA

Concurrency

TBA

Parallelism

TBA

To Be Continued...