Joshua Bloch: A conversation about design Keep it simple Designing testable applications Designing extensible applications - Part I Designing extensible applications - Part II Designing extensible applications - Part III Designing extensible applications - Part IV OO Design Archives Sun More features of the Java language - Java Trail OO programming concepts - Java Trail Java World When there is no client-side user - JW Applying OO principles in GUI development - Java World Other The Object FAQ - Robert Hardaway