October 2004
Intermediate to advanced
240 pages
6h 22m
English
Systems have sub-systems and sub-systems have sub-systems and so on ad infinitum—which is why we’re always starting over.
—Alan Perlis
The namespace is an important tool for managing names and reducing name collisions. So is a module, which is additionally an important tool for managing releases and versioning. We define a module as any cohesive unit of release (see Item 5) maintained by the same person or team; typically, a module is also consistently compiled with the same compiler and switch settings. Modules exist at many levels of granularity that range widely in size; a module can be as small as a single object file that delivers a single class, to a single shared or dynamic library generated from multiple source ...