Chapter 1: Introduction

Bloch states:
 
"Most of the rules in this book derive from few fundamental principles. Clarity and simplicity are of paramount importance. The user of a component should never be surprised by its behavior. Components should be as small as possible but no smaller. (As used in this book, the term component referes to any reusable software element, from an individiaul method to a complex framework consisting of multiple packages.) Code should be reused rather than copied. The dependencies between components should be kept to a minimum. Errors should be detected as soon as possible after they are made, ideally at compile time."
 
He also writes:
 
"Learning the art of programming, like most other disciplines, consist of first learning the rules and then learning when to break them."
 
He also mentions:
 
"For the most part, this book is not about performance. It is about writing programs that are clear, correct, usable, robust, flexible, and mantainable. If you can do that, it's usually a relatively simple matter to get the perforemance you need (item 67)."