Stephen has posted 14 posts at DZone. View Full User Profile

A review of Google App Engine Java and GWT Application Development

12.28.2010
| 8497 views |
  • submit to reddit
Published by: Packt Publishing
ISBN: 1849690448

Reviewer Ratings

Relevance:
5

Readability:
5

Overall:
5

Buy it now

One Minute Bottom Line

This book is my top recommendation for Google App Engine Java programming. It's coverage of the datastore is worth the purchase price alone.

Review

Writing a book on a young fast moving technology, like Google App Engine (GAE), is an enormous challenge. You risk the material being outdated by the time the book hits the bookstores, or the technology developing to the point where you are covering only a small subset of its features.  One or both of these issues has affected every published book covering GAE, and will in time effect this one too. However, there is much here to recommend this book and give it a longer shelf life than some of its predecessors.  

First and perhaps most importantly the authors have avoided the trap of trying to be all things to all people: rather, they single mindedly target the intermediate level Java programmer, including the following in their introduction:

“This is an intermediate-level book. It is designed for readers with some prior programming experience, and previous experience with Java development and object-oriented programming. It also assumes a general understanding of web technologies and concepts, and how to build web applications.”

Evidence of this can be seen not only by what is included, but more importantly what is not included. There is no discussion of basic programming topics basic Java syntax, OOP etc., and the authors mention but otherwise ignore the low level Data API – and similar advanced topics. Similarly, topics which might change quickly and otherwise date the book, billing for example, receive only brief mention, and the reader is directed to the GAE Documentation for more details.

The standout feature of this book is its coverage of the GAE’s datastore. The authors obviously spent a lot of time looking at the questions in the GAE Java mailing list, where datastore questions make up a large percentage of all questions posted to the list. Especially noteworthy were:

  • The explanation of the non-relational underpinnings of the datastore,
  • How the need to scale the data access layer imposed limits on the schema and query methods allowed (e.g. why a query cannot contain more than one inequality filter),
  •  the detailed discussion of denormalizing your data schema to allow the use of a keys only query (which improves performance and makes modeling some relationships possible),
  • The design of indexes and how they improve read time at the cost of write time,
  • The creation and vacuuming of indexes,
  • Entity groups
  • How to modify an existing entity
  • How and when to use transactions, and
  • Improving performance by using memcache.

While the book’s coverage of datastore topics alone makes it worth the purchase price. It also explains:

  • How to create a front end using GWT (including coverage of UI Binder),
  • Cron jobs and scheduled tasks – great solutions to a common problem,
  • The Channel API,
  • XMPP – I especially liked the authors use of this feature as a push mechanism (something that I had never thought about), and
  • How to manage your app and stored data

One topic that I feel could have benefitted from a more complete discussion was accessibility. I will admit some bias here - in that I both have a disability, and work with a very large number of users with disabilities. However, the authors discussed several accessibility topics, including the breaking of the back button and how to address it; but ignored the accessibility and usability issues caused by Google Web Toolkit’s (GWT) dependence on JavaScript, and the sample application’s use of AJAX can cause. What happens when your user has JavaScript disabled?  How do you notify someone using a screen reader that some part of the page has been updated? None of these are insurmountable issues, but they do require planning. I think it would have been helpful to see the process of progressive enhancement used to address these issues.

One minor complaint I have is, that while the sample application’s code was well architected and structured, it did not include a class diagram, or a complete directory and file listing for the book’s sample application. Yes, I could have gotten this from viewing the downloadable code in eclipse I read this book on my netbook which doesn’t have eclipse installed. I think this is the type of issue that authors and publishers need to keep in mind when creating e-books as tablets and e-readers become more prevalent.

While the pace of development GAE and GWT are experiencing will keep this book from becoming a classic, read  and reprinted for years to come, like Kernighan and Ritchie’s “C Programming Language” or the gang of four’s book on design patterns.  Overall, when asked to recommend a book on GAE for Java. This book has earned its place atop that very short list.

Published at DZone with permission of its author, Stephen Robillard.

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

Comments

Prashant Murthy replied on Tue, 2011/03/29 - 5:58am

This document can provide with a great start for any developer looking to exploit their Java skills in the mobile arena. Take a look at this updated developer's guide. It provides an overview to the platforms, development tools and distribution mechanisms for apps created using Java™ technology for Nokia devices. It also emphasizes on the latest Nokia’s Touch and Type UI and how Java applications may take advantage of its features. Java Developer's Guide v1.1: http://www.forum.nokia.com/info/sw.nokia.com/id/aca87303-e7ef-4a5a-9274-7e0973d52e94/Java_Developers_Guide_v1_1_en.pdf.html

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.