A Seven Peaks Speaks Summary:

NodeJS:
The Past, Present, and Future

A detailed summary from Seven Peaks Software

An overview of Node.js

From this article, you will understand how Node.js has impacted back-end development, while getting insight of Hexagonal Architecture, so that you will be able to write more maintainable code.

Importantly, you will also get to discover the useful tools that are used to organize cloud databases with clean code practices from our speakers from Seven Peaks Software.

Introduction to Node.js and the impact on the world of development

Scroll through the presentation here:

The Hex Architecture

Introducing the Hexagonal Architecture

Hexagonal Architecture - Node.js - Seven Peaks Speaks

It is important to understand the Hexagonal architecture to avoid future coding issues and to write more maintainable code.

It is also important to understand “clean architecture”. What is clean architecture? It is the ultimate goal to separate Policy vs. Detail at the architecture level. This means that the application is independent from everything including Frameworks and any external agency. This also includes the business rules which are not bound to the database. You can easily test your business logic without any dependencies to the user interface, database or web API.

Application core with ports

From the start, we have two layers which are: the main layer and the application layer.

  • The main layer is something that contains your business rule
  • The application layer glue between the main layer and outer ports. Outer ports basically interface the specification on how you can use or work with this.

Source code dependencies must only point inwards

Importantly, source code dependencies only point inwards. So the main layer doesn’t know anything about the application layer. However, the application layer and ports can know everything about the domain, as well as manipulate and work with it.

Hexagonal Architecture - Node.js - Seven Peaks Speaks

Ports and Adapters

Hexagonal Architecture - Node.js - Seven Peaks Speaks

This one is already built in the application with hexagonal architecture; meaning that there is a similarity between the application layer as the main layer with the add-in of driving adapters which control your application. As you can see from the start, users can go there using an express web server which is called an “express adapter” through a service-port that controls the application to the left side of the driven adapters – as the application needs to access databases, email or log, etc. Basically, the adapters are the classes that implement the ports interfaces.

Hexagonal Architecture - Node.js - Seven Peaks Speaks

However, if you have the need to change the adapter, it can be done through changing the database, mail provider or easily migrating from Express to Koa. All you have to do is to remove the adapter and rewrite only the adapter code to implement these interfaces, because your application already has everything in place.
For more insightful coding instructions, check out this YouTube video

Deno

Is Deno the future of JavaScript?

Deno - is the future of JavaScript and will it replace Node.js? by Seven Peaks Speaks

Many people are asking if Deno is similar to Node.js. More questions include: why hasn’t Node.js improved? And why was Deno created?

To help answer these questions, let’s start with an introduction to Deno:

“Deno was invented by Ryan Dahl, known today as the creator of Node.js. In short, Deno is a JavaScript runtime engine and was introduced during his talk in 2018 where it was titled “10 things he regrets about Node.js.”

Ryan Dahl inventor of nodejs

What is

Deno made of?

Deno v1.0 was released recently in 2020 and it did make a buzz in the Node.js community. Deno is made from the following:

  • RUST
  • V8
  • Tokio (event loop)
  • Typescript

Deno is too young and Node.js is too stable. As Ryan Dahl, the creator of Deno and Node.js, mentioned in his talk that
“Node.js isn’t going anywhere”.

Take a peek at these brief coding examples of Deno in this video.

View Coding Video

Nx Mono

New innovations are needed for developers to be proactive and creative. Today, there’s a great way to manage projects without any pain points.

The good thing about mono-repository is that everything in the branch management always gets merged into master, as fast as possible, so ensure that your code gets updated. There are ways to do that and there is cache for it as well. T

he CI/CD pipeline is pretty neat which you only need one CLI to config your CI/CD. Also, it allows you to share codes, libraries between APIS and different Web Apps so you don’t repeat yourself, copy and paste the codes, and don’t have to publish the code onto MPM and make it to MPM modules.

All struggles are not needed in the mono-repository. Basically, it speeds us up and allows us to develop much faster.

Nx is a set of extensible tools monorepos, which helps you develop like Google, Facebook, and Microsoft. It gives first class support for both frontend and backend developers.

Why will the future be server-less?

In a software world, you still need servers in server-less. It is just that you don’t have to manage them. Putting work loads that need lots of concurrency and a lot of CPU to server-less, without managing them, may cause problems.

So when do you need to go server-less?

The tasks that go server-less are those asynchronous and not happening all the time. Their resources can be requested and configured. As well as an event-based architecture - since there are time out limitations and micro nature of each component. It does make you rethink about workflow and all the architecture over again.

Example Patterns of Server-less Framework

Scroll through the presentation here:

Introducing
Nx-Serverless

Flowaccount had written an open source called Nx-serverless to go with nx-monorepo because it is useful to deploy, run and develop serverless functions.

How does it help?

Coding in Typescript

Writing code in Typescript for your serverless stack – which makes writing the code more maintainable.

Angular schematic

Angular Schematics

Angular Schematics is a tool in the angular framework that helps you transform your code. Schematics can bootstrap your project by running all the automated code and format it right away without doing manual work including:

  • Redundant tasks
  • Template for code and standard builders for processes
  • Every config in one place (workspace.json / angular.json, nx.json)

Angular CLI

Angular CLI is a tool that helps you bootstrap your react, nest, next, serverless and all the plug-ins CLI. So that you can write all your configuration for all projects in one file:

  • One CLI for all your CI/CD processes
  • Reduce complexity in setting up tools
  • Support sIs commands. offline , deploy and on-going development

Get Instant FREE Access to our Tech Community!

What you’ll receive:

Latest news, reviews, and insights on emerging technologies

Updates on new job openings

Early invitations to events held at our office

Coding tips and tutorials

Interesting giveaway freebies

Plus much more!

Subscribe below to join our growing tech and design community.

Join!

Do you need help with your backend development for your project? Get in touch with us below to see how we can help you!

Meet the writers:

Sijan Shrestha

Senior full-stack developer

Sijan is our Senior full-stack developer with over 5 years of experience in the software industry. He is methodological, organized and a self-learner. 

Georgii Shestakov

Senior full-stack developer

Georgii, our Senior full-stack developer, has over 12 years of experience working on both sides of web applications frontend and backend. He is also passionate about data science and machine learning.

Ryan Cooke

Project Manager

Meet Ryan, our Project Manager, who has over 10 years of experience working on multiple roles including project management, mobile & web development, cloud infrastructure architect, and more.

Thida

Digital Marketing intern

Thida is a Junior Digital Marketing intern at Seven Peaks Software, who is currently working on both content sprouting and article writing. “Working hands-on in marketing has been an amazing experience for me so far. I hope you enjoy reading this article!” says Thida.

Meet our guest writer!

Meet Wick, a highly experienced Chief Technology Officer, who has over 15 years of experience in software engineering and product innovation with new and upcoming technologies. He has worked on a variety of projects for the past 5 years which includes growing a Cloud Accounting Platform from a three-person company to now the number one leading accounting solution in Thailand!

Wick

Chief Tech Officer at
FlowAccount.com

Sign up today & start getting tech news.

Get the latest tech trends directly in your inbox each month. And get invited to exclusive events.

    Leave a Reply