Arsitektur Node.js

 Node.js memiliki dua komponen utama, yaitu engine JavaScript V8 Google dan Libuv Library. Selain itu, platform tersebut menggunakan dua design pattern: object pool dan facade. Berikut adalah penjelasan singkat atas masing-masing komponen.

1. Engine V8

Engine V8 milik Google adalah sebuah compiler JavaScript yang dibuat menggunakan bahasa pemrograman C++. Dengan komponen ini, input berupa kode JavaScript dapat di-compile menjadi kode dalam tingkat assembly. V8 sendiri terdiri dari tiga komponen:

  • Compiler — mengubah JavaScript menjadi bahasa pemrograman lain
  • Optimizer — menciptakan sebuah abstract syntax tree yang akan diubah menjadi static single assignment dan dioptimasi
  • Garbage collector — V8 membagi penyimpanan yang ada menjadi dua, yaitu penyimpanan lama dan baru. Keduanya  menyimpan objek JavaScript, tetapi penyimpanan baru juga merupakan tempat menaruh output dari compiler. Ketika penyimpanan baru sudah penuh, garbage collector memindahkan objek-objek lama ke penyimpanan lama agar kinerja Node.js tetap ringan

2. Libuv library

Library C++ ini bertugas mengelola operasi asynchronous I/O (input/output) di Node.js dan main event loop. Di dalamnya juga terdapat thread pool reserve yang menangani thread setiap operasi I/O.

3. Design pattern

Ada dua jenis design pattern yang digunakan oleh Node.js, yaitu object pool dan facade. Berikut penjelasannya:

  • Object pool — design pattern berisi kumpulan objek yang dapat digunakan untuk task tertentu
  • Facade — design pattern yang memberikan tampilan antarmuka untuk body kode

Komentar

Postingan populer dari blog ini

6 Situs Untuk Mencari Inspirasi Seputar Desain UI/UX

Apakah UI/UX Designer Harus Bisa dan Belajar Coding ?

Cara Download Extension Visual Code Studio