MEAN vs. LAMP Stack Pros and Cons
Susunan web telah berkembang selama beberapa dekad dengan kemajuan teknologi dan bahasa backend. Dua susunan web yang paling popular sekarang ialah LAMP dan MEAN. Mereka bergantung pada dua teknologi yang berbeza untuk bahasa backend, pangkalan data, dan persekitaran pelayan. Istilah "timbunan" merujuk kepada teknologi yang bertumpu di antara satu sama lain untuk mewujudkan persekitaran pelayan web.
Dalam artikel ini, saya ingin menjelaskan kedua-dua susunan web ini dengan melihat pilihan teknologi mereka, kedua-dua kebaikan dan keburukan. Di mana setiap timbunan cemerlang? Dan apakah jenis projek yang akan mendapat manfaat daripada pilihan sama ada? Jika anda baru kepada teknologi web atau hanya ingin mengetahui tentang dua stack ini, maka panduan ini mempunyai semua yang anda perlukan.
Pembangunan LAMP Tradisional
Kebanyakan pemaju perlu tahu mengenai tindanan LAMP tradisional kerana sudah ada sejak awal web. LAMP singkatan Linux, Apache, MySQL dan PHP. Setiap satunya adalah pek perisian individu yang digabungkan untuk membentuk penyelesaian pelayan serba boleh.
Sebab utama untuk berpegang dengan LAMP adalah keselamatan dan sokongan yang meluas. Ia telah berlaku selama beberapa dekad, dan ia adalah kaedah yang dibuktikan untuk mengiklankan laman web.
Semua teknologi backend seperti PHP dan MySQL terkenal, dan disokong oleh setiap pembekal hosting utama. Jika anda bekerja pada timbunan LAMP, anda boleh menjadi tuan rumah di mana sahaja. Tambahan pula, anda dapat akses kepada enjin CMS yang paling popular. WordPress, Drupal, dan Joomla semuanya berjalan pada PHP / MySQL.
Disana ada pilihan disesuaikan dalam arsitektur LAMP seperti LEMP menggantikan Apache dengan nginx. Anda juga boleh menjalankan varian pada pelayan Windows sebagai timbunan WAMP.
Walau bagaimanapun semua perisian teras - termasuk Apache, MySQL, dan PHP - bersifat terbuka, dan dibuat terutamanya untuk Linux. Inilah sebabnya mengapa Linux membuat yang paling masuk akal untuk persekitaran pelayan, dan itulah sebabnya LAMP telah menjadi ujian masa untuk pembangunan web moden.
Kebanyakan pemaju pergi laluan ini kerana ia cara paling mudah untuk mendapatkan laman web dalam talian. Anda akan mendapat banyak sokongan di forum yang meliputi semua yang anda perlukan untuk mengkonfigurasi dan menyelesaikan persekitaran LAMP. Sebagai contoh, anda boleh menyemak soalan ServerFault ini untuk mendapatkan maklumat lanjut.
Backend JavaScript dengan MEAN
Node.js adalah teknologi terbaru untuk pemaju yang ditentukan untuk menjalankan aplikasi berskala yang dibina dengan JavaScript. Nod kuasa timbunan MEAN, dan menawarkan kelebihan utama: semuanya menjalankan bahasa tunggal.
MEAN singkatan MongoDB, Express.js, Angular.js, dan sudah tentu Node.js. Akronim ini tidak memerlukan keperluan bagi sistem pengendalian pelayan atau perisian pelayan. A MEAN stack boleh berjalan pada mana-mana OS, dan Node juga datang dengan pelayan sendiri untuk mengendalikan JS pada backend.
Anda akan mendapat banyak dokumentasi dan sokongan di laman web Mean.io.
Walaupun timbunan ini telah mendapat banyak perhatian, ia masih tidak mempunyai tempat berhampiran dengan jumlah sokongan stabil sebagai timbunan LAMP tradisional.
Jadi kenapa ada yang pergi dengan MEAN? Kerana itu akhirnya lebih cepat dan lebih mudah untuk skala. MongoDB adalah a Pangkalan data NoSQL yang mengoptimumkan pertanyaan. Penggunaan JavaScript fullstack juga meningkatkan pembangunan kerana satu bahasa digunakan untuk semua kerja frontend dan backend.
Lebih banyak lagi rangka kerja JS lain memukul pasaran sebagai penyelesaian yang stabil. Sebagai contoh, MEAN boleh dihidupkan kepada a Timbunan MEEN menggantikan sudut dengan Ember.
Pengaturcara akan menyukai stack MEAN kerana ia memisahkan kod untuk kelayakan dan pertumbuhan. Ini menjadikannya lebih mudah untuk menganjurkan aplikasi web JavaScript anda supaya mereka berjalan di persekitaran semula jadi.
Terdapat banyak perkara yang perlu dipelajari mengenai subjek ini, dan itu mungkin penghalang terbesar untuk kemasukan pemaju baru. Belajar semua teknologi yang diperlukan untuk mengurus aplikasi MEAN boleh mengambil bulan. Tetapi jika anda suka Node, dan ingin menjalankan segala-galanya di JavaScript, ini sangat berbaloi.
Berikut adalah beberapa tutorial pemula untuk memulakan anda.
- Panduan Permulaan Absolute untuk Node.js
- Panduan Pemula Node.js Felix
- Pengenalan kepada Express.js
- Belajar Membangun Aplikasi Web Moden dengan MEAN
- Bermula Dengan Node.js, Express, dan MongoDB
PHP vs Node
PHP telah wujud sejak pertengahan tahun 90an, dan benar-benar bahasa backend yang paling popular. Kebanyakan pemaju web bermula dengan (atau akhirnya belajar) PHP kerana ia sangat dominan merentas platform web dan penyedia hosting.
Node adalah rangka kerja baru tetapi popularitinya telah meningkat dengan sangat pesat. Ini termasuk populariti NPM sebagai pengurus pakej untuk pemaju web, dan mengembangkan lagi ke dalam rangka frontend yang kuat seperti Angular 2.
Manfaat lain dari Node adalah bahawa ia datang dengan pelayan webnya sendiri. JavaScript adalah akar segala sesuatu pada timbunan MEAN, jadi jika anda suka JS maka anda akan benar-benar suka membina aplikasi web MEAN.
Ramai pemaju merasa bahawa PHP adalah bahasa yang kurang direka bentuk kerana pencipta, Rasmus Lerdorf sebenarnya tidak merekabentuknya sebagai bahasa. PHP bermula sebagai penyelesaian generik untuk laman web, dan dengan cepat berkembang menjadi perpustakaan besar fungsi yang tidak berkaitan.
Tetapi dengan PHP 7 cuba untuk memperbaiki banyak kesilapan bahasa, dan dengan percuma OOP kerangka, seperti Laravel, PHP adalah bahasa yang lebih baik sekarang daripada yang pernah ada.
Jadi perbahasan bahasa turun ke pilihan peribadi anda. Adakah anda suka menulis JavaScript? Kemudian Node dengan timbunan MEAN mungkin patut dipertimbangkan.
Jika anda sudah mengetahui PHP, dan mahu melekat dengan apa yang anda tahu, LAMP adalah laluan yang baik juga.
Kelebihan & Keadaan Keseluruhan:
Disana ada pelbagai lapisan dari setiap timbunan web untuk membandingkan, termasuk sistem operasi, perisian pelayan, pangkalan data, dan bahasa backend.
(1) The Timbunan MEAN juga termasuk sudut yang merupakan rangka depan. Tidak ada rangka kerja yang diperlukan dalam timbunan LAMP, tetapi anda sentiasa boleh menambah sendiri ke mana-mana aplikasi yang anda bina.
(2) Berkenaan dengan OS, timbunan LAMP mencari derivatif Linux. Linux biasanya pilihan terbaik untuk persekitaran pelayan tidak kira timbunan, dan ia juga benar MEAN.
(3) Sekarang OS pelayan hanya perisian komputer, tetapi bukan perisian pelayan web. Untuk mendapatkannya, anda memerlukan program seperti Apache atau nginx. LAMP menggunakan Apache kerana ia merupakan salah satu pilihan paling stabil yang ada.
(4) MEAN menggunakan pelayan Node.js yang mana sebahagian daripada pakej Node. Ia masih agak baru, dan ketika terdapat banyak sokongan di luar sana, Node tidak mempunyai tempat yang sama dengan komunitas saiz yang sama seperti Apache.
(5) Juga memerlukan pelayan Node backend JavaScript (tanpa sambungan). Apache membolehkan kebanyakan bahasa backend, dan terdapat banyak sambungan percuma untuk sokongan yang lebih besar. Tetapi pada masa ini, Apache tidak mempunyai sokongan Node.
(6) Pengurusan pangkalan data adalah di mana anda akan mencari perbezaan terbesar. LAMP menggunakan MySQL untuk penyimpanan data perhubungan, sedangkan MEAN menggunakan MongoDB yang merupakan pangkalan data bukan relasi. DBs bukan relasi adalah lebih pantas, dan menyediakan kaedah yang lebih mudah untuk mengukur dengan trafik yang lebih tinggi.
(7) Perlu diingat bahawa PHP tidak terhad semata-mata kepada MySQL sahaja. Ia boleh menggunakan MongoDB dan alternatif lain seperti PostgreSQL atau SQLite. Hanya pemaju PHP yang paling mengetahui MySQL, jadi itu adalah pesaing utama untuk timbunan LAMP tipikal.
(8) Susunan MEAN biasanya berjalan pantas dan skala lebih besar, tetapi memerlukan lebih banyak masa dan pengetahuan pelayan untuk mempelajari sistem. Tumpukan LAMP adalah cuba-dan-benar, dan mereka datang di luar kotak dengan infrastruktur yang paling selamat dan sokongan terluas dibayangkan.
(9) Bahasa pengaturcaraan membuat perbezaan utama antara dua susunan. LAMP terutamanya berfungsi pada PHP yang merangkumi WordPress dan rangka kerja Laravel. MEAN berfungsi pada ExpressJS / NodeJS untuk backend dengan AngularJS di frontend.
(10) MEAN adalah penuh stack JavaScript, dan ada banyak yang anda perlu belajar untuk mendapatkan berjalan itu. Ianya adalah pilihan kerap startup baru bersedia untuk menolak sempadan dalam pembangunan aplikasi web. LAMP lebih tradisional dengan JS pada frontend, PHP pada backend. Ia dibuat untuk orang yang hanya mahu dapatkan laman web dalam talian tanpa terlalu bimbang.
Sila semak panduan perbandingan ini untuk belajar sedikit lagi. Pilihan tidak betul atau salah, hanya berbeza dan dibuat untuk projek yang berbeza.
Mengakhiri
Saya akan mengatakan kebanyakan laman web bersandar ke stack LAMP kerana ia diuji, dan mempunyai banyak topik Q & A yang diindekskan di Google. MEAN masih berkembang dan juga mempunyai banyak sokongan, tetapi mungkin lebih teknikal daripada kebanyakan orang yang ingin berurusan.
Jangan ragu untuk mencuba kedua-duanya, dan lihat mereka sendiri. Ia mungkin memasang kedua-dua tetapan dalam negara pada komputer anda, dan membinanya tanpa pelayan jauh.
Dan jika anda mencari maklumat lanjut mengenai timbunan, saya telah mengumpulkan satu set pautan berguna di bawah.
- Belajar Membangun Aplikasi Web Moden dengan MEAN (thinkster.io)
- Pentadbir Stack LAMP Docker (jessesnet.com)
- Cara Pasang Linux, Apache, MySQL, PHP (LAMP) Tumpukan pada Debian 8 (digitalocean.com)