The Art of Unix Programming by EricRaymondISBN 013142901-9 From the preface: This book has a lot of knowledge in it, but it is mainly about expertise. It is going to try to teach you the things about Unix development that Unix experts know, but aren't aware that they know. It is therefore less about technicalia and more about shared culture than most Unix books - both explicit and implicit culture, both conscious and unconscious traditions. It is not a 'how-to' book, it is a 'why-to' book.
The book starts with 17 design rules. They are all good, though some are not practiced as often in Unix as the author might like. Chapters 4-17 describe a wide variety of design techniques and give examples. There are a huge number of examples in this section. Most of it seems pattern-like, chapter 11 describes some UI patterns.
This is an outstanding book. It is destined to be a classic in the field of software design.
More information, and a browsable online copy, is at http://www.catb.org/~esr/writings/taoup/.
I found it very interesting that the preface mentions DesignPatterns (Eric considered calling it Unix Design Patterns.) Also, I realized one reason why ExtremeProgramming appeals so much to me - it has similarities with the Unix philosophy. -- JamesStansell
A quote from chapter one:
Software design and implementation should be a joyous art, a kind of high-level play. If this attitude seems preposterous or vaguely embarrassing to you, stop and think; ask yourself what you've forgotten. Why do you design software instead of doing something else to make money or pass the time? You must have thought software was worthy of your passion once....