Book Review: Single Page Web Applications

Single Page Web Applications: JavaScript end-to-end illustrates techniques required to build entire web applications in Javascript, both client and server-side. The authors build a simple chat application step-by-step, similar to the Facebook chat window. If you follow along, you could build the application yourself, as they show what a developer would commit to a code repository at each step. If you don’t follow along this way, it is a fairly quick read, as you can just stop on the parts you don’t know.

The application they build uses jQuery on the client side, Websockets, Node / Express.js, and MongoDB. The focus is on seeing something built end-to-end, so there are a bunch of footnotes where they recommend investigating other technologies (e.g. a templating engine like handlebars). The UI is built purely with jQuery event passing, which seems to be falling out of favor. if you are familiar with React, Angular, etc it can still helpful to see what areas those tools improve. The authors also show the CSS changes they make as they go, which is great as it is one of the more rage inducing parts of web development.

The book helpfully covers a wide range of problems, including some really practical issues like how search engines interact with Javascript, how to apply schemas to JSON, and operational issues like logging Javascript errors. Notably absent are responsive (mobile) issues that might be covered by starting from Bootstrap, Javascript build tools (grunt, webpack etc), or the use of ES6. That said, it is probably a wise decision to wait on including build tools until there are clearer options.

The presentation style seems like it would be great for training more junior developers, as it teaches how to handle several software engineering issues by example. The code examples are well commented and use jslint, and it is clear that the authors have thought a good deal about how to structure applications There is also an appendix on code style, which doesn’t help me particularly, but may be useful for someone newer to Javascript development. Overall I think this is a solid book for learning how to build a Javascript application.