JavaScript Web Applications

JavaScript Web Applications
Alex MacCaw
Genres: Programming
Year of publication: 2012
Year of reading: 2020
My rating: Normal
Number of reads: 1
Total pages: 285
Summary (pages): 0
Original language of publication: English
Translations to other languages: Russian, Chinese

General Information

The book consists of 13 chapters and 3 appendices. The appendices are essentially jQuery and CSS references. This book is not for JavaScript beginners, so anyone planning to read it should already be familiar with basic JS. Many examples in the book are based on the use of jQuery. Let's take a slightly closer look at each chapter.

Brief Chapter Overview

The first chapter, "MVC and Classes," discusses the pattern of the same name and classes as a good mechanism for modularity. Examples use jQuery. MVC with jQuery and JS classes looks, if not completely cringeworthy, at least strange or alarming. But okay, the approach is interesting and worth studying. Also covers `bind` and prototypes, which is already not bad.

Chapter 2 — Events and Observers. Covers addEventListener and removeEventListener, event canceling. All of this is also considered in combination with jQuery.

Chapter 3 — Models and Data. Further explains the MVC concept. Works with data through a homemade ORM. Introduces jQuery.ajax. Again, this book is not quite for beginners, so the word "introduction" may not be appropriate. The result looks readable, but since nobody really uses this approach, it also looks strange.

Chapter 4 — Controllers and States. I was curious what the author would choose as a state manager or whether he would write his own. The application discusses routing using hashes, which, as someone who has worked in SEO optimization for 8 years, annoyed me a lot.

Chapter 5 — Views and Templates. Covers view files, their dynamic rendering, and overall functionality. Discusses helpers (utility functions).

Chapter 6 — Dependency Management. Talks about JS isolation and avoiding conflicts. Mentions both native tools (which likely didn’t work well in all browsers at the time) and third-party libraries.

Chapter 7 is about file handling, including drag and drop and clipboard interactions. Modern APIs for both have improved since then. Also shows examples of file uploads without reloading the page.

Chapter 8 — Real-Time Web Technologies. Briefly covers sockets and Node.js (socket work).

Chapter 9 — Testing and Debugging. Briefly introduces libraries like QUnit, Jasmine, Selenium, Zombie.js, Ichabod. Aside from Selenium, I hadn’t heard of most. Also briefly mentions developer tools like code inspector, console, and browser tabs helpful in debugging.

Chapter 10 — Deployment. Discusses caching, file minification, gzip compression, and using CDNs. Naturally, no mention of CI/CD.

The last three chapters are dedicated to the libraries Spine, Backbone, and JavaScriptMVC.

Conclusion

When I first read the book, I found much more value in it than I did five years later when writing detailed notes. So at this point, I would rather not recommend this book, despite the interesting ideas it contains. Even considering jQuery’s remaining popularity, I still wouldn’t recommend reading it.

Вверх