The Best Node.js & Microservices Articles we Ever Wrote

RisingStack's services:

Sign up to our newsletter!

In this article:

Since the inception of RisingStack, our engineers have published more than 220 articles to show off our coding/architectural skills and convince potential clients that we have the expertise to build & scale software effectively, and to prove that we’re great educators!

As a result, our Blog brought together a huge community of enthusiastic engineers in the past 5 years – so far we’ve reached more than 5.9 million devs & gained around 50K subscribers.

Sometimes it’s great to look back & be nostalgic about our successes, so we dived deep into our data and listed our most-read and most-shared articles!

This collection is also a great starting point for new readers of the blog.

Have fun!

Top 11 Most-Read Posts on the RisingStack Blog:

1. Mastering Async-Await in Node.js

Asynchronous language constructs have been around in other languages for a while, like async/await in C#, coroutines in Kotlin and goroutines in Go. With the release of Node.js 8, the long-awaited async functions have landed in Node.js as well.

From this article, you can learn how you can simplify your callback or Promise based Node.js application with async functions (async/await).

If you..

  • liked the good old concepts of if-else conditionals and for/while loops, or
  • believe that a try-catch block is the way errors are meant to be handled,

you will have a great time rewriting your services using async/await.

As we show in this article, async/await can make several patterns a lot more easier to code and read, so it is definitely more suitable in several cases than Promise.then() chains. However, if you are caught up in the functional programming craze of the past years, you might wanna pass on this language feature.

2. Your First Node.js HTTP Server

From this article, you can learn how to fire up a simple Node.js HTTP server and start serving requests from scratch! We discuss Express, Middlewares, Error Handling & Debugging as well!

Express middlewares for building a Node.js HTTP server

This blogpost is the 4th chapter of our Node Hero tutorial series. Check out this post to go from the beginning: https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/

3. Yarn vs npm – The State of Node.js Package Managers

With the v7.4 release, npm 4 became the bundled, default package manager for Node.js. In the meantime, Facebook released their own package manager solution, called Yarn. In this article we dive into what these package managers offer, what’s the difference between them, and how they evolved.

4. The React.js Way: Getting Started Tutorial

This article helps you to get started with React.js and gives insights on thinking the ‘React way.’ We wrote it at the beginning of the React hype, which means that it’s a little bit outdated. We hate to disappoint, so we created a few follow-up React.js tutorials including our latest:

5. Node Hero – Getting Started With Node.js Tutorial

This article is the first part of our fan-favorite “Getting Started with Node.js” series which helps beginners to grasp the main concepts behind Node.js and teaches how to write software effectively!

risingstack-node-js-microservices-consulting

We even created stickers for this series! 🙂

6. React.js Best Practices for 2016

This article is a collection of React.js best practices, with special attention to data handling. Although it was written in 2016 – it still holds value & it’s being read constantly.

We discuss flux, redux, immutable states, observables, routing, components, testing & so on..

7. Understanding Async Programming in Node.js

This article helps you to learn the principles of async programming, and to do async in JavaScript and Node.js. If you’re a Node developer, you MUST get this part right – so no wonder that it’s one of our best performing post.

Non-async blocking operations example in Node Hero tutorial series.

8. Node.js Project Structure Tutorial

This article teaches readers how to structure a Node.js project properly to avoid confusion when applications start to grow. We talk about the 5 fundamental rules of structuring a project, which are:

  • Organize your Files Around Features, Not Roles
  • Don’t Put Logic in index.js Files
  • Place Your Test Files Next to The Implementation
  • Use a config Directory
  • Put Your Long npm Scripts in a scripts Directory

9. Node.js Authentication using Passport.js

This Passport.js tutorial walks you through the steps of setting up a local Node.js authentication strategy using Redis.

Passport.js is an authentication middleware for Node.js

10. How to Get Node.js Logging Right

Get some help with logging in Node.js modules, applications and distributed systems. To do so, check out the tools, methods, rules and best practices we use at RisingStack for developing enterprise Node projects.

Some takeways:

  • Always log to stdout. It is not the applications responsibility to route logs.
  • Never, ever log credentials, passwords or any sensitive information.

11. 10 Best Practices for Writing Node.js REST APIs

In this article, we wrote about best practices for writing Node.js REST APIs, including topics like naming your routes, authentication, black-box testing & using proper cache headers for these resources.

  • 1 – Use HTTP Methods & API Routes
  • 2 – Use HTTP Status Codes Correctly
  • 3 – Use HTTP headers to Send Metadata
  • 4 – Pick the right framework for your Node.js REST API
  • 5 – Black-Box Test your Node.js REST APIs
  • 6 – Do JWT-Based, Stateless Authentication
  • 7 – Use Conditional Requests
  • 8 – Embrace Rate Limiting
  • 9 – Create a Proper API Documentation
  • 10 – Don’t Miss The Future of APIs

Top 10 Most-Shared Posts of RisingStack

1. Node.js Best Practices – Become a Better Developer

This article collects the most important Node.js best practices that you should implement to become a better developer. Although this article was written for 2017, you can still find some evergreen pieces of advice in there.

To make sure that you keep up with the trends, we published a 2018 version of this article too, which you can find here:

2. JavaScript Clean Coding Best Practices

There is no reasonable excuse for doing anything less than your best, especially when it comes to coding.

“Even bad code can function. But if the code isn’t clean, it can bring a development organization to its knees.” — Robert C. Martin (Uncle Bob)

Clean coding is a key skill when it comes to software development. In this post, we collected the basic clean coding principles for naming and using variables & functions, as well as some JavaScript specific clean coding best practices. In doubt? This image shows another way to tell whether your code is good enough.

javascript-clean-coding-best-practices-code-review

3. Node.js Security Checklist

Security – the elephant in the room. Everyone agrees that it is very important, but few takes it seriously.

This hands-on checklist helps you to have all the security checks before your application is enabled to thousands of users/customers. Make sure not to miss any of them!

4. Advanced Node.js Project Structure Tutorial

In this article, we give a solution for the most common pain-points of structuring advanced Node applications and help you with structuring a complex project.

What to aim for in project structuring?

  • Writing an easily scalable and maintainable application
  • The config is well separated from the business logic.
  • Our application can consist of multiple process types.

It’s important to get these aspects right as the way you bootstrap your apps will determine your whole project.

5. Node v10 is Here – Feature Breakdown!

Node v10 was recently announced, and we were super excited about its new features and the possible changes it would bring in the way we develop Node.js apps. To introduce it in depths to our reader, Tamas wrote a neat post about it. He included:

  • Stable HTTP 2
  • ESM Modules
  • Error Codes
  • Fs Promises
  • N-Api
  • V8 6.6

6. How Developers use Node.js – Survey Results

We conducted a survey in 2016 about how developers use Node.js and to find out various aspects of developing Node.js and choices for async control flow, debugging, continuous integration or finding packages. We concluded that one of the most significant pain-point of Node.js developers was Debugging, among others:

  • Debugging / Profiling / Performance Monitoring
  • Callbacks and Callback hell
  • Understanding Async programming
  • Dependency management
  • Lack of conventions/best practices
  • Structuring
  • Bad documentation
  • Finding the right packages

To keep track with the changes of the community, we surveyed Node developers in 2018 too. You can see the most up-to-date results in this post:

7. Node.js Interview Questions and Answers (2017 Edition)

In this post, we collected 10 interview questions and answers that would help you get an overview of a person’s experience in Node.js. This article is not only useful from the interviewers’ viewpoint but from the interviewee as well.

It’s important to note though, that these questions do not give you the big picture of someone’s mindset and thinking, so we encourage you to do pair programming with the developers you are going to hire.

We have also written a similar post recently about getting ready for a React interview, which you can find here:

8. Fundamental Node.js Design Patterns

What are design patterns?

A design pattern is a general, reusable solution to a commonly occurring problem.

When we talk about design patterns, we might think of singletons, observers, or factories. Besides these, this article also deals with other, super useful pattern as well, such as:

  • dependency injection
  • middlewares

9. Concurrency and Parallelism: Understanding I/O

This article focuses on understanding the principles of operating systems, since they handle our applications’ I/O. Let’s dive into concurrency and paralellism, and understand the main differences between them.

We’ll go the following takeaways:

  • Intro to Concurrency and Parallelism
  • Processes and threads
  • CPU vs. I/O
  • I/O flavors: Blocking vs. non-blocking, sync vs. async
  • Busy-waiting, polling and the event loop

Then, see a hands-on example that illustrates the differences between working with synchronous, blocking and asynchronous, non-blocking network I/O.

10. History of Node.js on a Timeline

Our favourite framework has a rich history since it’s emerged in 2009.In this post we go through the history of Node.js; we see how it got started and how did it become the framework that we know now.

history-of-node-js

RisingStack’s Engineer Favorites:

We also asked our engineers about which articles they enjoyed writing the most:

Tamas Kadlecsik: Consumer-Driven Contract Testing

In this article, Tamas walks you through the steps of performing consumer-driven contract testing in a microservices architecture with Pact.

After you got the fundamental consumer-driven contract testing right, you should check out the 2nd, more advanced part of it:

Peter Czibik: Getting Node.js Testing and TDD Right

Making sure that the changes we make in a large codebase actually work is of utmost importance.

It can be tedious to have proper test coverage when you have to focus on pushing out all the new features, but think about your future self, would you like to work on code that’s not tested properly? If not, read this guide on getting testing and test-driven development right.

“Remember, you don’t write tests for yourself! You write them for those who make changes later.” – RisingStack

Tamas Hodi: Node.js Async Best Practices

In this post, Tamas covers the tools and techniques you have at your disposal when handling Node.js asynchronous operations: async.js, promises, generators and async functions.

He discusses:

  • Asynchronous programming in Node.js
  • The Problem with Node.js Async
  • The Classical Approach of Callbacks
  • How to avoid a Callback Hell with Control Flow Managers

Bertalan Miklos: Introducing React Easy State

React Easy State is a state management library for React. This article introduces the fruition of Bertalan’s two years long journey with ES6 Proxies and meta programming.

Bertalan guides you through creating a stopwatch with his newly announced library. It’s very cool:

clock-2

Robert Czinege: How I Survived RisingStacks Bootcamp

This article captures the journey of how Robert became an engineer at RisingStack; how he utilized what he learned in our Node.js coding bootcamp and beat his imposter syndrome.

Robert’s story can be an inspiration for anyone who is seeking a career shift in their life. If you’d like to learn more Node, check out our resources page.

Kristof Ivancza: How to Get Started With Kubernetes

When our clients ask us to create a distributed system, we usually recommend Kubernetes, because it’s great, and in the same time a lot more simple than other competing orchestration engines.

You can get started with Kubernetes with this article where Kristof collected everything you need to know about our favorite orchestration engine.

Mate Huszarik: AngularJS to Angular – a brief history

Mate dived deep into the history Angular to see where it came from and what might happen with it in the future. Read more about the pillars of Angular to have a better understanding of what it has to offer.

“Indeed, Angular might have a longer learning period compared to other front-end libraries but in return it enhances the developer experience with built-in solutions that come by importing modules.”

What should we write about Next?

Let us know if there’s anything you’re missing from our repertoire in the comment section below!

Share this post

Twitter
Facebook
LinkedIn
Reddit