BERARTI vs. LAMPU untuk proyek pemrograman Anda berikutnya

Transisi dari rasa ingin tahu yang mutakhir menjadi pekerja keras praktis bukanlah transisi yang dibuat oleh banyak teknologi. Pemula sebelum waktunya yang cepat kemarin sering gagal memenuhi janji Versi 0.1 mereka. Tidak demikian halnya dengan teknologi yang membentuk tumpukan MEAN yang sangat disingkat.

Hanya beberapa tahun yang lalu MongoDB, Express.js, AngularJS, dan Node.js menaikkan alis mereka sendiri. Sekarang mereka telah dewasa dan bergabung, dan bersama-sama mereka melakukan pekerjaan yang serius, memburu banyak pengembang dari kamp LAMP yang luas. Tapi bagaimana tepatnya hal MEAN bermodel baru ini dibandingkan dengan LAMP? Kapan lebih baik memilih LAMP yang teruji dengan baik dan matang daripada koleksi teknologi JavaScript-sentris pemula ini?

Jawabannya adalah ketika kesederhanaan dan struktur umum membuat hidup Anda lebih mudah. MongoDB menawarkan lapisan yang lebih fleksibel dan akomodatif untuk menyimpan data. Node.js menyediakan perhubungan yang lebih baik untuk menjalankan server Anda, sementara Express membantu menstandarkan cara Anda membangun situs web Anda. Pada klien, Angular menyediakan cara yang bersih untuk menambahkan fungsi interaktif dan komponen kaya yang digerakkan AJAX. Gabungkan semuanya dan mereka membuat mekanisme yang jelas dan koheren untuk memindahkan data dari pengguna ke disk farm dan kembali lagi.

Penjelasan sebenarnya, bagaimanapun, lebih dalam. Di sini kami menawarkan sembilan alasan untuk mencoba MEAN dengan proyek Anda berikutnya. Tidak semua orang memiliki waktu atau anggaran untuk membuang dan mengodekan ulang yang lama dalam kerangka kerja terbaru dan paling trendi, Anda juga tidak boleh membuang keandalan yang kokoh dari alat yang telah teruji pertempuran seperti Apache, MySQL, atau PHP. Tetapi untuk proyek bidang hijau yang dapat memperoleh manfaat dari fleksibilitas, kesederhanaan, dan kinerja, menggunakan MEAN dapat membuat hidup Anda lebih baik daripada yang Anda pikirkan.

MongoDB dibuat untuk cloud

Jika paket aplikasi web Anda termasuk memenuhi janji pennies-per-CPU dari cloud, tumpukan MEAN menawarkan lapisan database yang menarik di MongoDB. Database modern ini dilengkapi dengan sharding otomatis dan dukungan cluster penuh, langsung dari kotaknya. Hubungkan MongoDB dan itu menyebar ke seluruh cluster server Anda untuk menawarkan dukungan failover dan replikasi otomatis. Mengingat kemudahan aplikasi yang dapat dikembangkan, diuji, dan dihosting di cloud, ada sedikit alasan untuk tidak mempertimbangkan MongoDB untuk proyek Anda berikutnya.

Struktur MySQL terbatas 

Siapa pun yang telah mengembangkan atau memelihara aplikasi berbasis LAMP untuk jangka waktu berapa pun tahu bahwa kekuatan MySQL sebagai database relasional terkadang terasa sedikit memenjarakan. Seperti semua database relasional, MySQL memaksa Anda untuk memasukkan data Anda ke dalam tabel. Ini bukan masalah jika setiap entri cocok dengan format yang persis sama, tetapi seberapa sering dunia ini bermurah hati? Bagaimana jika dua orang berbagi alamat yang sama tetapi bukan akun yang sama? Bagaimana jika Anda ingin memiliki tiga baris ke alamat, bukan dua? Siapa yang belum mencoba memperbaiki database relasional dengan memasukkan terlalu banyak data ke dalam satu kolom? Atau Anda akhirnya menambahkan kolom lain, dan tabel menjadi tidak terbatas.

MongoDB, di sisi lain, menawarkan struktur dokumen yang jauh lebih fleksibel. Ingin menambahkan sedikit informasi pribadi baru ke profil pengguna Anda? Cukup tambahkan bidang ke formulir Anda, gulung dengan data lainnya dalam dokumen JSON, dan masukkan ke dalam koleksi MongoDB Anda. Ini bagus untuk proyek yang sedang berubah dan untuk menangani data yang pada akhirnya terbukti sulit untuk dibatasi dalam bentuk tabel.

Ruang disk murah

Di antara wahyu besar dari database relasional adalah perintah JOIN. Dengan JOIN, kami dapat menghemat ruang disk dengan menghapus bidang berulang seperti kota, negara bagian, dan kode pos. Dengan menyimpan data yang sering diakses dan berulang ini dalam tabel terpisah yang dapat disertakan dalam hasil mendatang melalui GABUNG, kami menjaga database kami tetap rapi dan disk kami tetap ramping.

Tetapi JOIN bisa menjadi rumit untuk beberapa orang dan sulit pada RAM, dan meskipun masih merupakan ide yang baik untuk mengisolasi dan mengakses data dalam tabel terpisah melalui JOIN, sekarang tidak perlu terlalu banyak untuk menghemat ruang disk karena disk drive diukur dalam beberapa terabyte. Ruangnya sangat murah sehingga beberapa perancang database akhirnya mendenormalisasi data mereka karena JOIN terlalu lambat. Setelah Anda melakukannya, Anda tidak memerlukan database relasional terlalu banyak. Mengapa tidak menggunakan MongoDB saja?

Node.js menyederhanakan lapisan server

Menavigasi berbagai lapisan tumpukan LAMP bisa menjadi tarian yang sulit dari banyak topi, yang membuat Anda mengacak-acak berbagai file konfigurasi dengan sintaks yang berbeda. MEAN menyederhanakan ini melalui penggunaan Node.js.

Ingin mengubah cara aplikasi Anda merutekan permintaan? Taburkan beberapa JavaScript dan biarkan Node.js melakukan sisanya. Ingin mengubah logika yang digunakan untuk menjawab pertanyaan? Gunakan JavaScript di sana juga. Jika Anda ingin menulis ulang URL atau membuat pemetaan aneh, itu juga dalam JavaScript. Ketergantungan MEAN stack pada Node.js menempatkan pipework semacam ini di satu tempat, semuanya dalam satu bahasa, semua dalam satu tumpukan logika. Anda tidak perlu membaca ulang halaman manual untuk PHP, Apache, dan apa pun yang Anda tambahkan ke tumpukan. Sementara pembuatan LAMP memiliki file konfigurasi yang berbeda untuk semuanya, Node.js menghindari masalah itu sama sekali. Memiliki semuanya dalam satu lapisan berarti lebih sedikit kebingungan dan lebih sedikit kemungkinan bug aneh yang dibuat oleh interaksi aneh antara beberapa lapisan.

MEAN membuat kode isomorfik

Kesederhanaan tidak berhenti dengan menggunakan JavaScript di server. Dengan menggunakan MEAN, Anda juga dapat menikmati JavaScript yang sama di klien, meninggalkan skizofrenia klien / server tumpukan LAMP. Jika Anda menulis kode untuk Node dan memutuskan lebih baik ditempatkan di Angular, Anda dapat memindahkannya dengan mudah, dan hampir pasti berjalan dengan cara yang sama. Fleksibilitas ini membuat pemrograman aplikasi berbasis MEAN jauh lebih mudah. Selain itu, jika Anda mengatur staf sebuah proyek, Anda tidak perlu mencari ahli PHP dan ahli JavaScript, atau ahli front-end dan back-end. Sebaliknya, itu semua JavaScript di seluruh tumpukan.

JSON di mana saja

Angular dan MongoDB keduanya berbicara JSON, seperti halnya Node.js dan Express. Data mengalir dengan rapi di antara semua lapisan tanpa menulis ulang atau memformat ulang. Format asli MySQL untuk menjawab pertanyaan adalah miliknya sendiri. Ya, PHP sudah memiliki kode untuk mengimpor data MySQL dan membuatnya mudah untuk diproses di PHP, tetapi itu tidak membantu lapisan klien. Ini mungkin sedikit kecil bagi veteran LAMP yang berpengalaman karena ada begitu banyak perpustakaan yang teruji dengan baik yang mengonversi data dengan mudah, tetapi semuanya tampak sedikit tidak efisien dan membingungkan. MEAN menggunakan format JSON yang sama untuk data di mana saja, yang membuatnya lebih sederhana dan menghemat waktu untuk memformat ulang saat melewati setiap lapisan. Plus, keberadaan JSON di mana-mana melalui tumpukan MEAN membuat bekerja dengan API eksternal menjadi jauh lebih mudah: DAPATKAN, manipulasi, sajikan, POST, dan simpan semuanya dengan satu format.

Node.js sangat cepat

Apache memang hebat, tetapi belakangan ini, Node.js sering kali lebih cepat habis. Sejumlah tolok ukur menunjukkan bahwa Node.js menawarkan kinerja yang lebih baik, sambil melakukan lebih banyak lagi. Mungkin itu usia kode. Mungkin arsitektur berbasis peristiwa Node.js lebih cepat. Tidak masalah. Saat ini, terutama di antara pengguna perangkat seluler yang tidak sabar, mengurangi kinerja aplikasi Anda bahkan dalam hitungan milidetik adalah penting dan Node.js dapat melakukannya, sambil menawarkan mekanisme lengkap Turing untuk memprogram ulang.

Kedalaman itu penting

Pecinta PHP suka berpegang teguh pada pustaka kode hebat yang dibangun untuk platform dominan seperti WordPress atau Drupal. Mereka punya alasan bagus untuk bangga, tetapi keuntungan mereka menguap seiring Node.js menyusul.

Manajer paket Node.js, NPM, membuatnya lebih mudah untuk berbagi kode, dan repositori publik yang menargetkan Node.js tumbuh dengan cepat. Sementara kerumunan PHP mungkin memimpin pada saat ini, masa depan mungkin mendukung Node.js. Ditambah lagi, petahana sering kali terbukti rapuh dalam menghadapi tren yang berubah. Setiap upaya untuk memodernisasi platform yang mengakar seperti Drupal dengan versi baru berarti bahwa lebih banyak lagi pengembang yang mungkin membiarkan pandangan mereka mengarah ke platform yang lebih baru dan lebih gesit yang dibangun di sekitar Node.js.

Angular masih segar

Tidaklah adil untuk membandingkan "A" dalam "MEAN" dengan apa pun di tumpukan LAMP karena LAMP tidak menyertakan analog. Jika Anda ingin melakukan sesuatu di sisi klien, Anda sendirian. Tentu, ada banyak kerangka kerja berbasis PHP yang bagus yang bekerja dengan MySQL, tetapi masing-masing sedikit berbeda dan bergerak ke arahnya sendiri. WordPress, Joomla, dan Drupal, misalnya, menawarkan strategi yang berbeda, dan sulit untuk beralih di antara mereka, apalagi mem-port kode dari satu ke yang lain. Mengurapi satu kerangka klien menambah konsistensi dan stabilitas.

Ini juga membantu Angular dibuat oleh orang-orang dengan pengalaman 20 tahun membangun aplikasi web. Mereka cukup tahu untuk menyerahkan pekerjaan desain ke HTML dan CSS. Mereka juga menemukan cara menambahkan sedikit JavaScript untuk memindai HTML. Desainer Angular melihat apa yang dilakukan manusia dengan baik, lalu menyesuaikan JavaScript untuk mendukung manusia. Sistem template dan lapisan logika secara dramatis lebih bersih daripada yang telah kita lihat sebelumnya, sebagian karena tim menemukan cara yang lebih sederhana untuk memanfaatkan kekuatan lokal JavaScript untuk menebak apa yang Anda lakukan.

Campur dan cocokkan

Tentu saja, jika Anda sangat pemilih, tidak ada alasan mengapa Anda tidak bisa mencampuradukkannya sedikit. Banyak pengembang menggunakan MongoDB dengan Apache dan PHP, dan yang lainnya lebih suka menggunakan MySQL dengan Node.js. Angular bekerja cukup baik dengan server mana pun, bahkan yang menjalankan PHP untuk mengirimkan data dari MySQL. Anda tidak harus menjadi budak akronim.