There are many ways to write a program. At every level, from the overarching architecture of a program's design, through the separation of functionality into distinct layers and the implementation of individual classes, right down to the ways in which functions engage with each other, there is a wide range of strategies to choose from. These are accompanied by innumerable zealots of one style to the detriment of all others, silver bullet blog posts, and the dreaded Latest Thing that allegedly only aged, bearded Fortran developers can afford to ignore.
This is made all the more exciting by the fact that there are so many right ways of performing so many programming tasks. And it's your privilege as a developer to select the best method for any given task under the given circumstances.
And so, this chapter is dedicated to covering some of the most common programming and design...