Getting started with Node.js, Lazojs

I spent the last week learning Javascript, Node.js and some of the ecosystem. JavaScript : The Good Parts and Node.js: Up and Running were a good introduction into the field.

It is surprising how diverse and rich node.js ecosystem is. I think, this could be attributed to the language itself. JavaScript is everywhere, and it is extremely flexible. This creates a lot of diversity for both good and evil.

Besides, it is really easy for anybody to publish node.js packages. There are thousands of them, including some real gems.

I'm gradually falling in love with node.js for front-end development purposes. There just is too much goodness already implemented for you (if compared to .NET or golang environments, for example). Golang is still quite good for backends, though.

My impression of node.js is clearly biased, since I was focusing only on the technologies required for our front-end. Here the list of things I've been learning about:

  • Backbone.js - lightweight model-view library (great introduction).
  • Handlebars.js - nice templating library.
  • Grunt - JavaScript task runner.
  • Underscore.js - functional programming helpers.
  • Express - popular web application framework. for node.js (used in rendr) with a lot of middleware available.
  • hapi - another server framework for Node.js (powering Lazo.js).
  • Require.js - an implementation of Asynchronous Module Definition (AMD), used by Lazo.js to load modules on client and server.
  • Rx.js - reactive extensions for JavaScript, coming from the Microsoft world.
  • Rendrjs - framework to render Backbone.js apps on the client and the server, using Node.js.
  • Lazojs - client-server web framework for building decomposed single-page applications with optimized first page load and SEO compliance.

Rendr project turned out to be lacking for our needs. However, Tomas discovered more polished alternative to it: LazoJS from Walmart Labs.

By the end of the week we switched focus to LazoJS and started evaluating it. Documentation is awesome in this project.

I'll start this week by implementing an infinite scrolling for our news feed in lazo.js (with all the SPA benefits), then will continue adding other front-end features.

Tomas was extremely busy with the migration work during the week. Moving the most popular dating web site in a country has a lot of challenges. This process is done for HPC1 for now. This week Tomas plans to enrich HPC1 with additional data capture capabilities. This way we'll be able to serve better news for our members in HPC2.

Pieter was away on his well-deserved vacation, driving a new bike all around the Europe. He is with us this week, getting back to making our HPC middleware battle-ready. Welcome back, buddy!

- by .