This is the first book for which I started taking notes. And even though this isn't a native technology for me and I don't write server-side JS, the book still turned out to have quite a few useful points for me, which I, albeit rarely, go back to reread.
Advantages of the book
- The book is well-suited as an introduction to NodeJS, since the material is explained quite clearly and accessibly (although, maybe that’s because I’m already familiar with back-end development using other languages).
- The book is consistent, meaning there's a gradual increase in difficulty — from installing NodeJS to more advanced stuff.
- There are graphic illustrations to help explain certain complexities and nuances.
Disadvantages of the book
- The main drawback, in my opinion, is that the book's material is outdated (although I said it’s good for getting started with the technology, if I had access to more modern books, I’d choose those — though I don’t rule out the possibility that this book has been reissued and updated).
- The font chosen for code isn’t very good (maybe it’s just the version of the book I happened to get).
Features and opinion
As I already mentioned, NodeJS is not my native technology, despite the fact that I’ve been working with browser-based JS for a long time, so I find it hard to fully evaluate the book. The material presented in the book was clear and understandable to me. Many topics I expected to see were covered (like the built-in web server and routing, or streaming data processing). Of course, Express is mentioned as the framework here. At the same time, there isn’t much content about Express itself (which makes sense — the book isn’t really about the framework, but rather the tech it runs on). Closer to the end, the book explores NodeJS integration with third-party services and other technologies (like Redis, MongoDB, and MySQL). Lastly, I’ll add that all the examples in the book, just like the book's overall philosophy, avoid any kind of OOP (compared to PHP, Java, C#, for example), and all examples are written as functions, which would fit perfectly into a microservice-style architecture.