What This Book Is
A down to earth look at the practice of putting medium to large scale commercial software together where traditional C problems are solved in a somewhat less traditional C way conforming to the traditional C spirit nonetheless.
Here we will thoroughly examine the mechanics of putting a design pattern together in terms of a chosen model whose underlying and irrelevant implementation details we will mostly ignore. Once a pattern is in place and well understood we will deduce the consequences inflicted by this pattern's implementation on the surroundings.
What This Book Is Not
Purpose
A neutral exploration of how some number of design patterns can be implemented in C and what the consequences of these implementations are.
Target Audience
The individuals whose primary programming chores include, in no particular order, starting a new project from the ground up, gathering, analyzing and combing through requirements, establishing the scope of technical problems, architecting their solutions by partitioning them into collections of large number of small and sharp libraries and applications that work well together, designing project's directory structure, hand-writing the C code within the boundaries of the established framework, writing make files and build scripts, integrating source code control systems, debugging, testing, configuring, delivering and installing software into production environment and supporting it. Big picture. Broad strokes.
Full Disclaimer
Not being a raw academic text it is no doubt subjective to some degree. As much as I could, however, I have tried to remove my personal self from the material by omitting any personal opinions, judgements and qualifications. All the problems and their solutions in this text are framed in a language that avoids such subjectivity inviting words like better, worse, simpler, harder, easier, improve and their synonyms.
I do not claim to have invented or discovered anything. A small number of tiny technical constructs presented in the upcoming chapters are just a logical extension of a given problem.
Appearance
This is a sample text (sans-serif).
This is a sample C code, existing (mono space). This is a sample C code, new (mono space, strong).
This is a sample command line (mono space bold). This is a sample command line output (mono space italic).
Chapters' Format
All the design pattern chapters have the following sections:
The chapters are flat - one page per. The end of each chapter is designated by a black square used in mathematics to designate the end of a proof: \(\blacksquare\).
Navigation
The table of contents is a list of links to chapters which have navigational links at the top and at the bottom of the page. The links "top" and "bottom" scroll to the very beginning and the very end of each page. The links "prev" and "next" navigate to the previous and the next chapters correspondingly.
Scripts
JavaScript is used only to populate the table of contents for each page and to render the relevant mathematical content.
\(\blacksquare\)