6 hal yang harus Anda ketahui tentang Node.js

JavaScript melahap dunia, dengan alat dan peningkatan baru yang tiba dengan kecepatan sangat tinggi. Dengan Node.js, sistem runtime open source yang ditemukan pada tahun 2009 oleh Ryan Dahl, jangkauan tersebut telah diperluas ke sisi server.

Node.js telah menjadi sangat populer, dengan pembuat kode di mana-mana menggunakannya untuk membuat API dan membangun matriks interoperabilitas baru di Internet. Joyent telah menjadi sponsor utama Node.js sejak awal. Dalam Forum Teknologi Baru minggu ini, Ben Wen, wakil presiden pemasaran produk di Joyent, menguraikan enam hal yang harus Anda ketahui tentang fenomena yang mengguncang pengembangan backend. - Paul Venezia

Node.js adalah sistem runtime untuk membuat (kebanyakan) aplikasi sisi server. Ini paling dikenal sebagai cara populer bagi pembuat kode JavaScript untuk membangun API Web waktu nyata.

Tapi Node.js bukanlah kerangka JavaScript; memang, beberapa penulis telah menulis kerangka kerja yang sangat baik khusus untuk Node.js, termasuk Express.js, Restify.js, dan Hapi.js. Jadi apa sebenarnya fenomena ini yang menemukan jalannya ke dalam aplikasi Web, pembungkus sistem operasi, mikrokontroler, dan robot?

Pada intinya, Node.js adalah mesin server yang dilucuti dan sangat dapat disesuaikan - proto-server, jika Anda mau - karena di luar kotak itu tidak melakukan apa pun sampai Anda mengaturnya. Proses proto-server ini dalam satu lingkaran, siap untuk menerima dan menanggapi permintaan. Setiap permintaan itu sendiri dapat memulai permintaan lain ke beberapa bagian lain dari sistem, seperti membaca file dari disk atau mengirim sinyal untuk memutar motor di lengan robot. Perulangan itu, yang dikenal sebagai perulangan peristiwa, adalah bagian "runtime".

Node.js dikirimkan dengan konektor dan pustaka pekerja keras seperti yang berkaitan dengan HTTP, SSL, kompresi, akses sistem file, dan TCP mentah dan UDP. JavaScript, sudah disetel untuk lingkungan perulangan peristiwa browser Web untuk GUI dan peristiwa jaringan, adalah bahasa yang bagus untuk memasang kabel konektor ini. Anda dapat memasang konektor ke loop acara semudah Anda dapat menyatukan bagian-bagian Lego. Melakukannya memungkinkan Anda membuat server Web dinamis yang sederhana hanya dalam beberapa baris JavaScript.

Singkatnya, Node.js adalah sistem runtime yang memudahkan untuk membangun jaringan atau server aplikasi berbasis peristiwa lainnya. Berikut enam hal yang perlu Anda ketahui tentangnya.

1. JSON menang

JSON (JavaScript Object Notation) adalah format pertukaran data yang praktis, majemuk, dan sangat populer. JSON telah memungkinkan pengembang JavaScript untuk dengan cepat membangun API dan mendorong interoperabilitas dalam skala besar - tujuan utama untuk pembuat kode Node.js. Kesederhanaan JSON yang mencolok dapat diekspresikan hanya dalam lima diagram penguraian rel kereta api, terutama tanpa pemolesan XML dan teman-temannya yang licik (SOAP, XSD, WS- *, RELAX-NG, dan rapat komite tanpa akhir).

JSON dan JavaScript telah memperkuat kepentingan satu sama lain. Kembali ke masa awal Web, data dinamis di browser harus dimanipulasi, difilter, dan dioperasikan oleh satu-satunya bahasa non-plugin yang tersedia: JavaScript. Terlepas dari format aslinya yang dapat ditampilkan jaringan, data perlu disusun menjadi objek JavaScript. Ketergantungan pada JSON untuk deskripsi data tujuan umum memunculkan database NoSQL yang berorientasi dokumen seperti MongoDB dan CouchDB. Semuanya JSON sepanjang waktu hari ini.

2. JavaScript ada di mana-mana

JavaScript adalah bahasa yang unik, berorientasi objek, dan mirip C. Ini satu-satunya pilihan untuk mengembangkan aplikasi di browser, dengan kerangka kerja baru yang diperkenalkan setiap minggu untuk merayu pengembang. Dan dengan Node.js, JavaScript telah menyebar ke server. Tim implementasi yang bersaing telah mendorong penerjemah JavaScript ke depan, sehingga mesin V8 Google sangat cepat - cukup cepat untuk berada di inti Node.js.

JavaScript juga memiliki kemampuan internal untuk menangani mekanisme loop peristiwa dengan cara yang langsung. Bahasa lain memiliki kemampuan ini, yang digunakan oleh sistem event mereka sendiri. Python memiliki Twisted dan Ruby memiliki EventMachine. Namun karena sejarah, kedua sistem loop peristiwa tersebut hadir dengan cara yang relatif mudah untuk membuat jenis kesalahan kinerja tertentu, sementara JavaScript tetap relatif bebas dari bahaya ini.

JavaScript juga berjalan di banyak lingkungan OS, karena secara historis harus mendukungnya di browser. Ini, bersama dengan pustaka libuv untuk membantu memisahkan beberapa perbedaan sistem operasi, berarti Node.js memiliki footprint yang luas.

Tetapi kekuatan terbesar untuk migrasi JavaScript ke sisi server adalah manusia. Pemrogram harus melakukan lebih sedikit peralihan konteks mental antara browser Web dan server. Bahkan ada upaya untuk menyatukan lingkungan antara klien dan server sehingga kode dapat berjalan sama baiknya di kedua lokasi, yang selanjutnya menyederhanakan model dan mengarah pada peningkatan produktivitas.

3. Berbagi didorong

Etos komunitas Node.js adalah "berbagi dengan gembira". Sangat mudah untuk berbagi paket kode perpustakaan - secara teknis, budaya, prosedural, dan legal. Node Package Manager disertakan dengan Node.js dan telah berkembang menjadi repositori yang terdiri dari hampir 50.000 paket, sehingga kemungkinan pengembang lain telah mengemas solusi untuk masalah Anda, atau bahkan beberapa yang kurang umum.

Filosofi namespace Node.js pada dasarnya adalah ketiadaan satu, membiarkan setiap penulis mempublikasikan di bawah nama modul yang tidak digunakan di repositori publik bersama. Berbagi kode di bawah lisensi sumber terbuka MIT sangat disarankan di komunitas, yang juga membuat penyerbukan silang kode relatif bebas khawatir (dan bebas pengacara) dari perspektif kekayaan intelektual. Terakhir, komunitas sangat terlibat dalam pengikatan pustaka C yang menarik seperti computer vision (OpenCV) dan pustaka karakter optik sumber terbuka Tesseract. Yang terakhir, misalnya, memungkinkan proyek akhir pekan seperti Imdex yang memproses gambar dari web sehingga dapat dicari secara otomatis untuk konten tertulis.

4. Node Package Manager bekerja secara luas

Berbicara tentang mengelola dependensi perpustakaan, Node Package Manager layak dipanggil. Node Package Manager adalah root dari hampir semua sistem penerapan untuk Node.js dan mendasari banyak penyedia PaaS (platform-as-a-service) untuk Node.js, sebenarnya membuatnya agak mudah untuk memindahkan aplikasi yang lebih kecil antar penyedia. Manajemen paketnya yang sederhana dan dapat diandalkan telah membuat ekosistem Node tumbuh dengan sangat baik dalam sejarah baru-baru ini, ke titik di mana layanan publik yang mendasarinya sekarang perlu ditingkatkan ke tingkat berikutnya.

5. 'Baterai tidak termasuk' minimalis

Aplikasi Node.js dan Node.js Core sendiri dipecah menjadi modul-modul kecil yang disusun dan dibagikan. Setiap paket dan alat dapat dibatasi dengan ketat dan dibuat agar dapat dikelola. Ini kemudian dapat dipanggang bersama - seringkali tanpa terlalu banyak adonan yang tidak perlu. Sifat rendah-penghalang dan tanpa beban dalam membuat modul juga mendorong eksperimen dalam komunitas, dan ada cukup banyak tumpang tindih dan eksperimen dalam populasi paket. Ketika dijalankan dengan baik, setiap paket biasanya menangani satu tugas (misalnya node-optimist.js: 'penguraian opsi [baris perintah] ringan').

6. Instrumentasi

Akhirnya, Node.js dilengkapi dengan baik untuk penggunaan produksi. Artinya, terdapat alat untuk membantu membawa aplikasi ke kesiapan dan kinerja produksi penuh. Seperti halnya teknologi yang sedang berkembang, ada area di mana lebih banyak dokumentasi, alat, dan praktik terbaik dapat membantu. Tapi saat Node.js menuju rilis mayor berikutnya, ia berada pada pijakan yang cukup kokoh.

Node dalam konteks

Jika Anda tahu JavaScript, Node.js adalah jalan pintas menuju komputasi asinkron untuk Web. Dan kebetulan Node.js cocok untuk memecahkan masalah Web persis seperti ini: tantangan integrasi dan lem, dengan panggilan bertingkat ke API setelah API.

Di mana Node.js tidak bekerja dengan baik? Ini tidak sepenuhnya tepat di tempat di mana kalkulasi single-threaded akan menjadi hambatan, seperti beberapa jenis perkiraan atau klasifikasi yang berurutan. Dalam contoh tersebut, akan lebih efisien bagi Node.js untuk menjatuhkan permintaan ke pustaka independen yang didedikasikan untuk tugas tersebut, di mana ia dapat didistribusikan ke ratusan atau ribuan prosesor.

Node.js berkembang dengan cepat dan sedang digunakan di lebih banyak sistem misi-kritis dan pendapatan-kritis, seperti infrastruktur eCommerce Black Friday. Sangat mudah untuk memulai dengan Node.js, namun Node.js cukup dalam untuk menangani kompleksitas Web modern. Jika Anda membangun situs Web generasi berikutnya - terutama API untuk seluler dan integrasi Web - atau jika Anda membuat sesuatu yang baru yang bergantung pada layanan yang mendasarinya, Node.js adalah sistem runtime yang dapat bekerja dengan baik untuk Anda.

Forum Teknologi Baru menyediakan sarana untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]

Artikel ini, "6 hal yang harus Anda ketahui tentang Node.js", awalnya diterbitkan di .com. Untuk berita teknologi bisnis terbaru, ikuti .com di Twitter.