Apa yang dimaksud dengan tumpukan MEAN? Aplikasi web JavaScript

Tumpukan MEAN, ditentukan

Tumpukan MEAN adalah tumpukan perangkat lunak — yaitu, sekumpulan lapisan teknologi yang membentuk aplikasi modern — yang seluruhnya dibuat dalam JavaScript. MEAN mewakili kedatangan JavaScript sebagai bahasa "pengembangan tumpukan penuh", menjalankan segala sesuatu dalam aplikasi dari ujung depan ke ujung belakang. Setiap inisial di MEAN mewakili komponen dalam tumpukan:

  • MongoDB: Server database yang dikueri menggunakan JSON (JavaScript Object Notation) dan yang menyimpan struktur data dalam format JSON biner
  • Ekspres: Kerangka kerja JavaScript sisi server
  • Angular: Kerangka JavaScript sisi klien
  • Node.js: Sebuah runtime JavaScript

Sebagian besar daya tarik MEAN adalah konsistensi yang berasal dari fakta bahwa itu adalah JavaScript. Hidup lebih mudah bagi developer karena setiap komponen aplikasi — dari objek dalam database hingga kode sisi klien — ditulis dalam bahasa yang sama. 

Konsistensi ini berbeda dengan LAMP, yang sudah lama menjadi kebutuhan utama para pengembang aplikasi web. Seperti MEAN, LAMP adalah akronim untuk komponen yang digunakan dalam tumpukan — Linux, Server HTTP Apache, MySQL, dan PHP, Perl, atau Python. Setiap bagian dari tumpukan memiliki sedikit kesamaan dengan bagian lainnya. 

Ini tidak berarti tumpukan LAMP lebih rendah. Ini masih banyak digunakan, dan setiap elemen dalam tumpukan masih mendapat manfaat dari komunitas pengembangan yang aktif. Namun konsistensi konseptual yang MEAN berikan sangat bermanfaat. Jika Anda menggunakan bahasa yang sama, dan banyak konsep bahasa yang sama, di semua tingkat tumpukan, akan lebih mudah bagi pengembang untuk menguasai seluruh tumpukan sekaligus.

Kebanyakan tumpukan MEAN menampilkan keempat komponen — database, ujung depan, ujung belakang, dan mesin eksekusi. Ini tidak berarti tumpukan hanya terdiri dari elemen-elemen ini, tetapi mereka membentuk inti.

MongoDB

Seperti sistem database NoSQL lainnya, MongoDB menggunakan desain tanpa skema. Data disimpan dan diambil sebagai dokumen berformat JSON, yang dapat memiliki sejumlah bidang bersarang. Fleksibilitas ini membuat MongoDB sangat cocok untuk pengembangan aplikasi yang cepat saat menangani persyaratan yang berubah cepat.

Penggunaan MongoDB disertai dengan sejumlah peringatan. Pertama, MongoDB memiliki reputasi sebagai tidak aman secara default. Jika Anda menerapkannya di lingkungan produksi, Anda harus mengambil langkah-langkah untuk mengamankannya. Dan untuk pengembang yang berasal dari database relasional, atau bahkan sistem NoSQL lainnya, Anda harus meluangkan waktu untuk mengenal MongoDB dan cara kerjanya. Martin Heller terjun jauh ke dalam ulasan MongoDB 4, di mana dia berbicara tentang internal MongoDB, kueri, dan kekurangannya.

Seperti solusi database lainnya, Anda memerlukan middleware untuk berkomunikasi antara MongoDB dan komponen JavaScript. Salah satu pilihan umum untuk tumpukan MEAN adalah Mongoose. Mongoose tidak hanya menyediakan konektivitas, tetapi juga pemodelan objek, validasi sisi aplikasi, dan sejumlah fungsi lain yang Anda tidak ingin direpotkan dengan pembuatan ulang untuk setiap proyek baru.

Express.js 

Express bisa dibilang merupakan framework aplikasi web yang paling banyak digunakan untuk Node.js. Express hanya menyediakan sekumpulan kecil fitur penting — pada dasarnya ini adalah server web minimal yang dapat diprogram — tetapi dapat diperpanjang melalui plugin. Desain tanpa embel-embel ini membantu Express tetap ringan dan berperforma tinggi.

Tidak ada yang mengatakan bahwa aplikasi MEAN harus disajikan langsung kepada pengguna melalui Express, meskipun itu pasti skenario yang umum. Arsitektur alternatif adalah menerapkan server web lain, seperti Nginx atau Apache, di depan Express sebagai proxy terbalik. Hal ini memungkinkan fungsi seperti load balancing untuk dipindahkan ke sumber daya terpisah.

Karena Express sengaja dibuat minimal, ia tidak memiliki banyak overhead konseptual yang terkait dengannya. Tutorial di Expressjs.com dapat membawa Anda dari gambaran umum singkat tentang dasar-dasar hingga menghubungkan database dan seterusnya.

Angular

Angular (sebelumnya AngularJS) digunakan untuk membangun front end untuk aplikasi MEAN. Angular menggunakan JavaScript browser untuk memformat data yang disediakan server dalam template HTML, sehingga banyak pekerjaan rendering halaman web dapat dialihkan ke klien. Banyak aplikasi web satu halaman dibuat menggunakan Angular di bagian depan.

Satu peringatan penting: Pengembang bekerja dengan Angular dengan menulis di TypeScript, bahasa yang diketik seperti JavaScript yang mengkompilasi ke JavaScript. Bagi sebagian orang, ini merupakan pelanggaran salah satu konsep utama tumpukan MEAN — bahwa JavaScript digunakan di mana saja dan secara eksklusif. Namun, TypeScript adalah sepupu dekat JavaScript, jadi transisi antara keduanya tidak sesulit yang mungkin terjadi dengan bahasa lain.

Untuk menyelami Angular lebih dalam, Martin Heller siap membantu Anda. Dalam tutorial Angular-nya, dia akan memandu Anda membuat aplikasi web Angular modern.

Node.js 

Terakhir, ada Node.js — runtime JavaScript yang memberdayakan sisi server aplikasi web MEAN. Node didasarkan pada mesin JavaScript V8 Google, mesin JavaScript yang sama yang berjalan di browser web Chrome. Node adalah lintas platform, berjalan pada server dan klien, dan memiliki keunggulan kinerja tertentu dibandingkan server web tradisional seperti Apache. 

Node.js mengambil pendekatan yang berbeda untuk melayani permintaan web dari server web tradisional. Dalam pendekatan tradisional, server memunculkan utas eksekusi baru atau bahkan membagi proses baru untuk menangani permintaan. Benang pemijahan lebih efisien daripada proses forking, tetapi keduanya melibatkan banyak overhead. Sejumlah besar utas dapat menyebabkan sistem yang penuh muatan menghabiskan siklus berharga pada penjadwalan utas dan pengalihan konteks, menambahkan latensi dan memberlakukan batasan pada skalabilitas dan throughput. 

Node.js jauh lebih efisien. Node menjalankan loop kejadian berutas tunggal yang terdaftar pada sistem untuk menangani koneksi, dan setiap koneksi baru menyebabkan fungsi callback JavaScript diaktifkan. Fungsi callback dapat menangani permintaan dengan panggilan I / O non-pemblokiran dan, jika perlu, dapat mengeluarkan thread dari kumpulan untuk menjalankan operasi pemblokiran atau intensif CPU dan untuk menyeimbangkan muatan di seluruh inti CPU.

Node.js memerlukan lebih sedikit memori untuk menangani lebih banyak koneksi daripada kebanyakan arsitektur kompetitif yang diskalakan dengan utas — termasuk Apache HTTP Server, ASP.NET, Ruby on Rails, dan server aplikasi Java. Dengan demikian, Node telah menjadi pilihan yang sangat populer untuk membangun server web, REST API, dan aplikasi waktu nyata seperti aplikasi dan game obrolan. Jika ada satu komponen yang mendefinisikan tumpukan MEAN, itu adalah Node.js. 

Untuk pengantar Node.js, lihat penjelasan Martin Heller. Untuk mulai mengembangkan dengan Node, lihat tutorial Node.js. 

Keuntungan dan keuntungan dari tumpukan MEAN 

Keempat komponen yang bekerja bersama-sama ini bukanlah solusi untuk setiap masalah, tetapi mereka telah menemukan tempat khusus dalam perkembangan kontemporer. IBM memecah area di mana tumpukan MEAN sesuai dengan tagihan. Karena skalabel dan dapat menangani sejumlah besar pengguna secara bersamaan, tumpukan MEAN adalah pilihan yang sangat baik untuk aplikasi cloud-native. Ujung depan Angular juga merupakan pilihan tepat untuk aplikasi satu halaman. Contohnya termasuk:

  • Aplikasi pelacak biaya
  • Situs agregasi berita
  • Pemetaan dan aplikasi lokasi

BERARTI vs. MERN

Akronim "MERN" terkadang digunakan untuk menjelaskan tumpukan MEAN yang menggunakan React.js sebagai pengganti Angular. React adalah kerangka kerja, bukan pustaka lengkap seperti Angular, dan ada kelebihan dan kekurangan untuk menukar React menjadi tumpukan berbasis JavaScript. Singkatnya, React lebih mudah dipelajari, dan sebagian besar pengembang dapat menulis dan menguji kode React lebih cepat daripada yang dapat mereka tulis dan uji aplikasi Angular yang lengkap. React juga menghasilkan ujung depan ponsel yang lebih baik. Di sisi lain, kode Angular lebih stabil, lebih bersih, dan berkinerja baik. Secara umum, Angular adalah pilihan untuk pengembangan kelas perusahaan.

Tetapi fakta bahwa pilihan ini tersedia untuk Anda menunjukkan bahwa MEAN bukanlah jaket pengekang terbatas untuk pengembang. Anda tidak hanya dapat menukar komponen yang berbeda untuk salah satu dari empat lapisan kanonik; Anda juga bisa menambahkan komponen pelengkap. Misalnya, sistem cache seperti Redis atau Memcache dapat digunakan dalam Express untuk mempercepat respons terhadap permintaan.

Pengembang tumpukan MEAN

Memiliki keterampilan untuk menjadi pengembang tumpukan MEAN pada dasarnya memerlukan menjadi pengembang tumpukan penuh, dengan fokus pada perangkat JavaScript tertentu yang telah kita diskusikan di sini. Namun, popularitas tumpukan MEAN berarti bahwa banyak iklan lowongan akan ditujukan untuk developer full-stack dengan keahlian khusus MEAN. Guru99 memecah prasyarat untuk mengambil salah satu pekerjaan ini. Selain terbiasa dengan komponen tumpukan MEAN dasar, developer tumpukan MEAN harus memiliki pemahaman yang baik tentang:

  • Proses front-end dan back-end
  • HTML dan CSS
  • Template pemrograman dan pedoman desain arsitektur
  • Pengembangan web, integrasi berkelanjutan, dan teknologi cloud
  • Arsitektur database
  • Siklus pengembangan perangkat lunak (SDLC) dan bagaimana rasanya berkembang di lingkungan yang gesit

Berapa gaji developer MEAN stack? Meskipun selalu ada rentang berdasarkan pengalaman dan perusahaan, ini jelas merupakan bidang yang menguntungkan. Pada Desember 2019, Neuvoo.com mengatakan gaji rata-rata yang dapat diharapkan oleh pengembang tumpukan MEAN adalah sekitar $ 125.000 setahun. Memang.com menggabungkan pengembang tumpukan MEAN dengan pengembang tumpukan penuh secara lebih umum, dan mematok gaji tahunan tipikal sekitar $ 112.000.

Tutorial tumpukan MEAN

Apakah Anda nyaman dengan dasar-dasar teknis dan siap untuk menyelami dan mempelajari tumpukan MEAN? Ada sejumlah tutorial gratis di luar sana yang dapat membantu Anda memulai. Situs Template Angular memiliki tutorial yang sangat menyeluruh yang memandu Anda melalui proses pembuatan situs web sederhana menggunakan tumpukan MEAN. TutorialsPoint memiliki panduan yang bagus untuk membuat aplikasi web satu halaman dengan tumpukan MEAN. Nikmati tangan Anda kotor dan semoga berhasil!