[Excerpts from my review published in ACM's Computing Reviews.]
Enterprise web development : building HTML5 applications from desktop to mobile
Fain Y., Rasputnis V., Tartakovsky A., Gamov V., O’Reilly Media, Inc., Sebastopol, CA, 2014. 642 pp. Type: Book (978-1-449356-81-1)
Date Reviewed: Jun 18 2015
A basic truth about this book is that at 600 pages it is ambitious in scope and covers a whole lot of ground.
The book defines what it means for an app to be an enterprise app--that it is integrated with one or more company-specific business processes and helps an organization run its business online--and then goes about developing one.
The authors have earned their stripes having built and written books on enterprise web apps using Java, then Adobe Flex, and now Hypertext Markup Language 5 (HTML5).
The book takes a “continuous refactoring” (my words) approach to teaching web app development, wherein the application is continuously rewritten to embrace a new framework and a different or better way to accomplishing the application’s goals (all of the code examples from the book are available online). In that sense, the book serves as a fairly complete tutorial on web app development. The tutorials follow a show-and-tell style, whereby the reader is first shown a new application behavior and then told how to make it happen via code.
Broadly, the example enterprise web app is developed in the following stages:
(2) jQuery rewrite;
(3) ExtJS rewrite (ExtJS introduces concepts similar to classes and classical inheritance.);
(4) Integration with HTML5’s geolocation application program interface (API) and Google Maps;
(5) Embedding videos and charts (using Canvas and SVG);
(6) Modularization and RequireJS;
(7) WebSocket for server-side push;
(8) Responsive design and mobile enablement using jQuery Mobile, Sencha Touch, and PhoneGap;
(9) Productivity tools: npm, Grunt, Bower, Jasmine, Yeoman, CDB;
(10) Security considerations;
(11) Hybrid development, using the HTML5 stack, along with native platform-specific APIs; and
(12) Appendices on key HTML5 APIs and leading integrated development environments (IDEs)
The book’s declared goal isn’t to convince readers to adopt HTML5 development, but to know when HTML5 is the right approach (as opposed to native development using a platform-specific development stack, for example, Android or iOS).
This is the first book I’ve read that’s not dedicated to WebSocket and yet provides a serious chapter-length discussion on why WebSocket can serve as a replacement for hypertext transfer protocol (HTTP) in performance-conscious web applications.
The grammar and quality of prose is not quite up to the standards one has come to expect from an O’Reilly publication. Technology books, in particular those dealing with the always-moving target of front-end development, need to be published in a timely fashion so that they are relevant for at least six to 12 months. So it’s a significant challenge to provide editorial input in a short time frame. That challenge is multiplied when the book to be edited is as big as this one. The authors have done a good job of putting together a fairly elaborate treatise on enterprise web development. However, the book clearly didn’t receive the required editorial rigor, which can certainly cause a book to lose its audience, especially when that audience is already being asked to struggle with a complicated language and grammar, that is, the HTML5 development stack.
That said, considering the scarcity of good consolidated information on bleeding-edge web app development, I would highly encourage readers to look past the editorial gaps and dive into this treasure trove of guidance. It will vastly improve your understanding of developing enterprise-class web apps using current best practices.
If a beginner asked me for one book to get started with web app development, I would recommend Purewal’s book, which I reviewed earlier this year . After completing Purewal’s book, this book would be a good next step to expand on your client-side development skills (note that it doesn’t cover server-side topics such as Node or MongoDB).
More reviews about this item: Amazon, Goodreads
Reviewer: Puneet Singh Lamba Review #: CR143538
1) Purewal, S. Learning web app development. O'Reilly Media, Sebastopol, CA, 2014. See CR Rev. No. 143127 (1505-0332).