Dan Haywood is a UK-based freelance consultant specializing in enterprise application development using domain driven design approaches and agile development. Technology skills include Java, JEE, .NET, Sybase, RDBMS, OOAD, UML, AOP, TDD, Subversion and TFS Dan is a committer and advocate of the Naked Objects framework, and the author of “Domain Driven Design using Naked Objects”, published by the Pragmatic Bookshelf. Dan is a DZone MVB and is not an employee of DZone and has posted 15 posts at DZone. You can read more from them at their website. View Full User Profile

Getting Started with Google Guava – review

10.15.2013
| 495 views |
  • submit to reddit

Getting Started with Google Guava” isn’t a bad book to get you started with Google Guava – indeed, it’d probably be quite hard to write a bad book on Guava given just how good a library Guava is.

And the author, Bill Bejeck, has, on balance, done a pretty good job of covering the all the most important classes provided by the library, without getting too bogged down in any of them. That’s to his credit; I could easily imagine an author spending too much time on a particular personal favourite of the library.

Still, you’ll need to be a reasonably competent developer to get the most out of this book. This isn’t a book that provides lengthy tutorials on functional programming for example. But the examples that the author provides generally make sense (even if they are often rather shallow). As a reasonably competent developer myself, I did enjoy learning about some of the nooks and crannies of Guava that I might not have discovered quite so easily. I didn’t know that Guava had a Table collection class for example, and I think that the FluentIterable class might simplify some code I’ve written recently.

On the other hand, I don’t write that much multi-threaded code (thankfully!), and so the Concurrency chapter didn’t really help me understand when I might want to use a FutureCallback vs a ListenableFuture. And when reading the coverage of Sinks and Sources in the Files chapter, the examples didn’t explain well enough why these abstractions are useful.

There were also quite a few typos in the book, including in class names. In a similar vein, quite a lot of the indentation of code samples was also inconsistent. The book said it’d use JUnit tests throughout to illustrate the usage; but I can tell you it didn’t. And the grammar in some of the sentences was somewhat sloppy and could have benefitted from a bit more copy-editing. The feeling was of a book written a little too quickly.

But overall, I’d give this book 7 out of 10. If by reading it you end up using Guava a bit more in your day-to-day programming – and I think that you will – then it’s done its job.

Disclaimer: I was asked to review this ebook (and received a free copy) off the back of a blog post a while back I did on Guava myself.

Published at DZone with permission of Dan Haywood, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)