'''Programming On Purpose: Essays on Software Design''' by PjPlauger [ISBN 0137213743] The book is a collection of Plauger's essays about software design that appeared in Computer Language magazine. He presents the book as a series of tools for the software engineer. These tools are programming patterns, and include these ideas (in the order presented)... * InsideOutDesign * RightToLeftDesign * BottomUpDesign * LeftToRightDesign * EasyToHardDesign * ChaosToOrderDesign * OutsideInDesign * TopDownDesign * OrderToChaosDesign * HardToEasyDesign Also included are essays about what order you should apply your methods (patterns) in; abstraction; encapsulation; inheritance; and an excellent (if somewhat dated) bibliography. Here's a sample from the bibliography: * Alexander, '''Notes on the Synthesis of Form,''' ... If you've ever been in a house designed in a very nontraditional style, you understand quickly. There are annoying drafts, unexpected dead spaces, worrisome cracks in the walls. Maybe three releases later, your grandchildren will get a version that they can enjoy, but meanwhile you have to debug and/or adapt to all of the oversights. Applying the same reasoning to the design of computer systems shows us why we have made so many drafty habitats. We just don't know enough yet to master all of the complexity. In time perhaps we will, but only after we develop an architectural sense, and a humility, that will keep us in check. Read Alexander if you want to develop that architectural sense. ---- There have been two sequels to the book, containing additional sets of essays. * Programming on Purpose II: Essays on Software People [ISBN 0133281051] * Programming on Purpose III: Essays on Software Technology [ISBN 0133281132] ---- CategoryBook CategoryCollections