Single Page Web Applications: JavaScript end-to-end Author: Michael Mikowski | Language: English | ISBN:
1617290750 | Format: PDF
Single Page Web Applications: JavaScript end-to-end Description
Summary
In Single Page Web Applications you'll learn to build modern browser-based apps that take advantage of stronger client platforms and more predictable bandwidth. You'll learn the SPA design approach, and then start exploring new techniques like structured JavaScript and responsive design. And you'll learn how to capitalize on trends like server-side JavaScript and NoSQL data stores, as well as new frameworks that make JavaScript more manageable and testable as a first-class language.
About this Book
If your website is a jumpy collection of linked pages, you are behind. Single page web applications are your next step: pushing UI rendering and business logic to the browser and communicating with the server only to synchronize data, they provide a smooth user experience, much like a native application. But, SPAs can be hard to develop, manage, and test.
Single Page Web Applications shows how your team can easily design, test, maintain, and extend sophisticated SPAs using JavaScript end-to-end, without getting locked into a framework. Along the way, you'll develop advanced HTML5, CSS3, and JavaScript skills, and use JavaScript as the language of the web server and the database.
This book assumes basic knowledge of web development. No experience with SPAs is required.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
What's Inside
- Design, build, and test a full-stack SPA
- Best-in-class tools like jQuery, TaffyDB, Node.js, and MongoDB
- Real-time web with web sockets and Socket.IO
- Touch controls for tablets and smartphones
- Common SPA design mistakes
About the Authors
The authors are architects and engineering managers. Michael Mikowski has worked on many commercial SPAs and a platform that processes over 100 billion requests per year. Josh Powell has built some of the most heavily trafficked sites on the web.
Table of Contents
PART 1: INTRODUCING SPAS
Our first single page applicationReintroducing JavaScript PART 2: SPA CLIENT
Develop the ShellAdd feature modulesBuild the ModelFinish the Model and Data modules PART 3: THE SPA SERVER
The web serverThe server databaseReadying our SPA for production- Paperback: 432 pages
- Publisher: Manning Publications; 1 edition (September 27, 2013)
- Language: English
- ISBN-10: 1617290750
- ISBN-13: 978-1617290756
- Product Dimensions: 9.2 x 7.4 x 0.8 inches
- Shipping Weight: 1.5 pounds (View shipping rates and policies)
Back in April I was asked to convert a small Flash based game to HTML5 (and its related technologies). As it turns out, I was starting a small SPA and didn't even know it (had never heard the term then). I'm an old programmer (non-web) that had virtually no JavaScript (or other web technology) experience. So over the last few months I have purchased lots of books and have been absorbing all these acronyms as fast as possible! I saw the pre-order of this book and it combines all of this into one book! I'm very excited about this book! I've only just started (read the first three chapters), but wanted to go ahead and start my review because Chapter 2 (Reintroducing JavaScript) alone has given me several eureka moments and if I read no further, the book will have been worth it! As for my game in progress, I will probably do a re-write using the models in this book as it has already given me answers to some of the issues I have been struggling with.
I've read all the "must-read" JavaScript books (The Definitive Guide, Doug Crockford's book, etc...) and Chapter 2 of this book blows all those away (for certain concepts)! I could never fully "get" concepts such as Closures, Self-executing anonymous functions, and prototype vs. class. And low and behold this chapter covers exactly those concepts and makes them clear as day! The section on the execution context object and the JavaScript engine was perfect! Page after page I had "eureka" moments where I said to myself, "I get it now!" (these guys should write a JavaScript book). The analogies were perfect and for each concept they explained it in several different ways. I loved those multiple explanations, although more seasoned JavaScript programmers may find the repetition a bit boring.
If you're interested in single-page web apps (SPAs) this book is a must read. Mike Mikowski presents his own battle-tested working method to create SPAs that are robust, maintainable and easy to understand. The book includes a coding standard, a test standard (integrated jsLint) and a template that illustrates his approach. You can adopt his approach completely, or partially, but either way the book will give you lots of ideas on how to organize and modularize your code base for a large-scale project.
In many ways the biggest problem with large-scale SPAs is organizational, and Mikowski suggests that you design your own modules as if they were 3rd. party modules isolated into their own dom container and using their own js and css files. He recommends a consistent naming scheme for static variables, state variables, jQuery cached objects and a consistent method of setting module configuration and performing module initialization. It's all common sense stuff, but it's an effective way to avoid 'the fog of spa' without getting too verbose.
In addition, Mike Mikowski is the developer of the uriAnchor jQuery plug-in and uses it throughout to handle application state. uriAnchor ties app state to the global onHashChange event and links undo, redo and save to the browser controls with little developmental overhead.
I found this book by accident while reading the new John Resig Ninja book (also worthy of 5 stars) and since I'd read the heart of Ninja carefully and the rest quickly, pushed Ninja onto the stack and started reading Mikowski & Powell. I tend to dislike parallel coding while reading tutorials, so usually I just stepped through the sample code in the debugger.
Single Page Web Applications: JavaScript end-to-end Preview
Link
Please Wait...