‫Instruktur: Sekarang, untuk mengatur
‫panggung untuk beberapa kuliah berikutnya,
‫mari kita mulai dengan belajar sedikit tentang arsitektur Node.
‫Jadi mari kita nyatakan arsitektur itu
‫di sini dalam hal dependensi Node,
‫yang hanya beberapa
‫perpustakaan tempat Node bergantung agar berfungsi dengan baik.
‫Jadi run time Node memiliki beberapa
‫ketergantungan, dan yang
‫paling penting adalah mesin V8 (bergumam) dan libuv.
‫Sekarang kami katakan sebelumnya bahwa Node adalah run time
‫JavaScript berdasarkan mesin V8 Google, bukan?
‫Jadi, itulah mengapa itu muncul di sini sebagai ketergantungan.
‫Jika bukan karena V8, Node sama sekali tidak
‫akan mengerti kode JavaScript yang kita tulis.
‫Dan oleh karena itu, V8 adalah bagian
‫mendasar dalam arsitektur Node.
‫Jadi sekali lagi, mesin V8 adalah yang mengubah kode JavaScript menjadi
‫kode mesin yang benar-benar dapat dipahami oleh komputer.
‫Oke, tapi itu saja tidak cukup untuk membuat keseluruhan kerangka
‫kerja sisi server seperti Node.js.
‫Dan itulah mengapa kami juga memiliki libuv di Node.js.
‫Dan libuv adalah perpustakaan sumber terbuka dengan
‫fokus kuat pada IO asinkron.
‫Jadi, masukan keluaran.
‫Lapisan inilah yang memberi Node akses
‫ke sistem operasi komputer
‫yang mendasarinya, sistem file, jaringan, dan banyak lagi.
‫Selain itu, libuv juga mengimplementasikan dua fitur yang sangat penting
‫dari Node.js. JS yang
‫merupakan loop acara dan juga kumpulan utas.
‫Dan secara sederhana, loop acara bertanggung jawab
‫untuk menangani tugas-tugas mudah seperti menjalankan panggilan balik
‫dan IO jaringan sementara kumpulan utas adalah untuk pekerjaan yang lebih berat
‫seperti akses file atau kompresi atau sesuatu seperti itu.
‫Tetapi Anda akan mempelajari
‫semua tentang itu, tentang loop peristiwa dan
‫kumpulan utas, dalam beberapa video berikutnya.
‫Satu hal penting yang
‫perlu diperhatikan di sini adalah bahwa libuv sebenarnya
‫sepenuhnya ditulis dalam C++ dan bukan dalam JavaScript.
‫Dan V8 sendiri, juga menggunakan kode C++ selain JavaScript.
‫Jadi oleh karena itu, Node sendiri adalah program
‫yang ditulis dalam C++ dan JavaScript dan bukan hanya dalam JavaScript
‫seperti yang Anda harapkan, bukan?
‫Sekarang keindahan dari ini adalah Node. JS mengikat
‫semua perpustakaan ini bersama-sama, tidak peduli
‫apakah ditulis dalam C++ atau JavaScript dan
‫kemudian memberi kami akses pengembang ke fungsi mereka dalam JavaScript murni.
‫Jadi itu benar-benar memberi kita
‫lapisan abstraksi yang sangat bagus untuk membuat hidup kita
‫jauh lebih mudah daripada kita harus mengacaukan kode C++.
‫Itu akan menjadi pengalaman yang mengerikan, bukan?
‫Jadi sekali lagi, arsitektur ini memungkinkan kita untuk menulis
‫kode JavaScript murni 100 persen,
‫berjalan di Node.js. JS dan masih
‫mengakses fungsi seperti untuk membaca file,
‫yang di balik layar sebenarnya
‫diimplementasikan di libuv atau perpustakaan lain dalam bahasa C++.
‫Dan berbicara
‫tentang perpustakaan lain, Node sebenarnya tidak hanya
‫mengandalkan V8 dan libuv, tetapi juga pada http-parser
‫untuk mengurai http, c-ares atau semacamnya untuk beberapa hal permintaan
‫DNS, OpenSSL untuk keepography, dan juga zlib untuk kompresi.
‫Dan ini tidak begitu penting untuk dipahami, oke?
‫Jadi pada akhirnya, ketika kita memiliki semua bagian ini
‫dengan baik, kita berakhir dengan Node.js. JS siap digunakan
‫di sisi server keempat aplikasi.
‫Dan selanjutnya, Anda akan mempelajari lebih lanjut tentang utas
‫di Node dan kumpulan utas.
‫Jadi pantau terus untuk yang satu itu.