
This is the beginning of a new project.
I believe that if you can’t explain to others what you think you know and use every day, you probably don’t know as much as you think. Teaching, in any form—through blog posts, articles, or video blogs—always lets you explore the topics you cover more deeply. I get the impression that mentoring is encouraged more in Anglophone culture, and not by coincidence, both inside and outside the companies where people work.
During 2014, I dove into technologies and trends related to concepts such as big data, responsive design, platforms for the sharing economy, the Internet of Things, and so on. At the same time, I worked even harder to improve my software project management skills (which, to a large extent, means having great empathy for the team you lead). As I always say, if you’re not improving the skills you work with, you’re getting worse…
I like NodeJS. I used it last year on a professional project for a client, and right now I’m putting it through its paces in one of my projects for this year. At the same time, the few books about NodeJS written in Spanish don’t cover everything I’d like them to; in fact, I think there’s a major gap that needs to be filled.
Will NodeJS be forgotten in a few years?
In software, we can never make medium- or long-term predictions, because the best technologies don’t always survive. Even so, I believe NodeJS and its ecosystem will remain part of the way we approach scalable projects for a long time.
The main reason is that it’s relatively easy to learn, it uses JavaScript—a language that’s becoming more ubiquitous all the time—and an ecosystem of modules is growing around its core, greatly enriching it. So now is the time to prepare a thorough, rigorous, high-quality book about NodeJS.
But another book about NodeJS? Will it just be one more, or will it offer a new perspective?
There’s a major gap in Spanish-language technical literature about this technology. What’s available, while quite good, is, in my humble opinion, mostly simple introductions to the basics of NodeJS, without a comprehensive approach to building a professional project that’s ready for production. In other words, you’d need several publications, along with plenty of articles and forum searches, to connect all the dots and build even a minimally professional NodeJS application.
Describing the fundamentals of a technology doesn’t prepare you to use it fully in a professional project. The books I’ve read (in both Spanish and English), although I like them, are missing the following:
- They always present simple, toy examples. That’s fine pedagogically, but it doesn’t go far toward solving real problems of the kind that arise in any NodeJS project.
- They don’t explain how to apply basic clean code and refactoring techniques in NodeJS.
- They don’t emphasize the best way to structure a project based on its nature.
- There’s no catalog of best practices for developing a project that uses NodeJS, in whole or in part, according to what the community considers sound practice.
- There’s a significant gap when it comes to implementing security measures in a web project built with NodeJS.
- It’s also difficult to find best practices for deploying a NodeJS project to production and maintaining it there.
- They don’t explore in depth the modules that have grown around NodeJS and created a genuinely rich, mature ecosystem for professional applications (Q and promises, Passport, Sequelize, async, Underscore, Lodash, and so on).
- Similarly, they don’t explain how to use a unit-testing framework with NodeJS properly or how to integrate it into any project.
- They also don’t clearly explain how to separate concerns in a project with NodeJS’s particular characteristics so that it’s easy to test and maintain.
- For web projects, there’s plenty of material about Express, but little of it covers everything needed to produce a web application with minified and concatenated CSS and JS files, and so on.
- They don’t address how to integrate the consumption of external resources published as REST services or how to build your own RESTful layer.
I don’t intend to cover every one of these topics in tremendous depth, but I do want to provide enough detail to show the complete picture.
For now, if you decide to dive into this wonderful and promising technology, be aware that you’ll need to get some of the books currently available and dig through plenty of additional material to see the whole NodeJS Universe from a global, holistic perspective.
That’s where the name The NodeJS Universe comes from: it isn’t just the technology, its Core API, and more or less advanced use of JavaScript (ECMAScript 5), but also the many modules, techniques, and best practices needed for a project’s success.
How will the work be published?
The chapters have already been outlined and organized, and I’ll produce them over the coming months using a process similar to the one I followed when releasing sections of The Programmer’s Black Book: previews of the chapters’ core content every few weeks, until the full book is complete.
Arrrgh! I’ve been thinking about this project for many months, so now I’m firing the starting gun to make a modest contribution to educating our community of professional software developers about this wonderful technology—better and more thoroughly.
Remember: we aren’t just an accumulation of knowledge about one technology or another; we’re what we’re able to do with that knowledge that is useful to others.