Recommended Reading for Java Developers

August 7, 2008 1:18 PM







As an alternative, consider removing both of "Design Patterns" and "Refactoring", and replacing it with "Refactoring To Patterns"; this is more practical than "Design Patterns", largely because it focuses a lot more on how to identify when you should be using the pattern in existing code.

"Refactoring" is still essential reading. The important thing it teaches is not the details of Move Method, but the strict, step by step process of shifting code around atomically. That process will never not be necessary.

There will always be a refactoring that your IDE does not support, either because it's not common enough or because it's not automatable for whatever reason, and knowing how to get from A to B manually in a safe, repeatable fashion will save your ass at some point.

HOW ABOUT "domain driven design" ?

A couple of other books in an "excellent supplemental" category would be:

"Interface Oriented Design" by Ken Pugh. In some ways this is likely well covered by other OOA/D books - but as Interfaces are a major differentiating factor for Java it's well worth a read to improve understanding of various trade-offs when using them.

"Implementation Patterns" by Kent Beck. Features some of the better discussion on the actual process of writing code that is readable. Helps you write cleaner code - and understand the trade-offs to using certain phrases or constructs in your code.

Previously: Quote of the Day

Next: Raphaël