MEAN vs. LAMP Stack Pro și Contra
Stive Web au evoluat de-a lungul deceniilor, cu avansuri în tehnologia și limbi de backend. Două dintre cele mai populare stack-uri web sunt în prezent LAMP și MEAN. Ei se bazează pe două tehnologii diferite pentru limbi de backend, baze de date și medii de servere. Termenul "stack" se referă la tehnologii care se depozitează unul pe altul pentru a crea un mediu de server web.
În acest articol, aș dori să clarific aceste două stive de web prin analizarea opțiunilor lor tehnologice, atât argumente pro și contra. Unde fiecare stivă excelează? Și ce tipuri de proiecte ar beneficia cel mai mult de cele două opțiuni? Dacă sunteți nou în tehnologiile web sau doriți doar să aflați despre aceste două stive, atunci acest ghid are tot ce veți avea nevoie.
Tradițional LAMP Development
Majoritatea dezvoltatorilor ar trebui să știe despre stackul LAMP tradițional, deoarece a fost în jur de la începutul paginii. LAMPĂ standuri pentru Linux, Apache, MySQL și PHP. Fiecare dintre acestea sunt pachete software individuale care sunt combinate pentru a forma o soluție server versatilă.
Cel mai mare motiv pentru a rămâne cu LAMP este securitate și suport pe scară largă. Acesta a fost în jur de zeci de ani, și este o metodă dovedită de gazduire site-uri web.
Toate tehnologiile backend precum PHP și MySQL sunt bine cunoscute și susținută de fiecare furnizor important de gazduire. Dacă lucrați la un stivuitor LAMP puteți găzdui oriunde. În plus, veți obține accesul la cele mai populare motoare CMS. WordPress, Drupal și Joomla rulează pe PHP / MySQL.
Sunt opțiuni personalizabile în cadrul arhitecturii LAMP, cum ar fi LEMP înlocuind Apache cu nginx. De asemenea, puteți rula o variantă pe un server Windows ca o stivă WAMP.
Cu toate acestea, toate software-ul de bază - inclusiv Apache, MySQL și PHP - au fost deschise, și realizat în primul rând pentru Linux. Acesta este motivul pentru care Linux are cea mai mare importanță pentru un mediu server și de aceea LAMP a fost testul timpului pentru dezvoltarea web modernă.
Majoritatea dezvoltatorilor merg pe acest traseu pentru că este cel mai simplu mod de a obține un site online. Veți găsi o mulțime de suport pe forumuri care acoperă tot ce aveți nevoie pentru a configura și depana un mediu LAMP. De exemplu, puteți verifica această întrebare ServerFault pentru mai multe informații.
JavaScript Backend cu MEAN
Node.js este cea mai nouă tehnologie pentru dezvoltatorii determinați să ruleze aplicații scalabile construite cu JavaScript. Nodul activează stiva MEAN, și oferă un avantaj principal: totul rulează pe o singură limbă.
ÎNSEMNA standuri pentru MongoDB, Express.js, Angular.js, și, desigur Node.js. Acest acronim nu plasează nicio cerință pentru un sistem de operare pentru server sau pentru un software de tip server. Un stack MEAN poate rula pe orice sistem de operare, și Node vine chiar cu propriul server pentru a se ocupa de JS pe backend.
Veți găsi o mulțime de documentație și asistență pe site-ul Mean.io.
Deși acest stack a câștigat o mulțime de atenție, acesta nu are niciunde aproape de cantitatea de suport stabil ca un stivuitor tradițional LAMP.
Deci, de ce ar merge cineva cu MEAN? Pentru ca este în cele din urmă mai repede și mai ușor la scară. MongoDB este a Bază de date NoSQL care optimizează interogările. Utilizarea fullstack JavaScript îmbunătățește de asemenea dezvoltarea deoarece o singură limbă se aplică pentru toate lucrările frontend și backend.
Plus multe alte cadre JS se lovesc de piață ca soluții stabile. De exemplu, MEAN poate fi comutat la a MEEN stack înlocuind Angular cu Ember.
Programatorii vor iubi stiva MEAN pentru asta separă codul pentru mentenabilitate și creștere. Asta face organizarea mai ușoară a aplicațiilor web JavaScript, astfel încât acestea să funcționeze într-un mediu natural.
Există multe de învățat pe această temă, și probabil aceasta este cea mai mare barieră pentru intrarea noilor dezvoltatori. Învățând toate tehnologiile necesare pentru gestionarea unei aplicații MEAN pot dura luni. Dar dacă vă place Node, și doriți să rulați totul pe JavaScript, acest lucru merită efortul.
Iată câteva tutoriale pentru începători.
- Un ghid absolut pentru începători la Node.js
- Felix's Node.js ghidul de incepatori
- Introducere în Express.js
- Aflați cum să construiți aplicații Web moderne cu MEAN
- Noțiuni de bază cu Node.js, Express și MongoDB
PHP vs. Nod
PHP a fost în jur de la mijlocul anilor '90, și este cu adevărat cel mai popular limbaj de backend. Mulți dezvoltatori de web încep cu (sau în cele din urmă să învețe) PHP deoarece sunt atât de predominanți în cadrul platformelor web și furnizorilor de servicii de găzduire.
Nodul este un cadru mai nou, dar popularitatea sa a crescut extraordinar de rapid. Aceasta include popularitatea NPM ca manager de pachete pentru dezvoltatorii web și se extinde în continuare în cadre puternice de frontend, cum ar fi Angular 2.
Celălalt beneficiu al Nodului este că acesta vine cu propriul server web. JavaScript este la rădăcina a tot ceea ce se întâmplă într-un stack MEAN, deci dacă vă place JS atunci veți plăcea cu adevărat să construiți aplicații web MEAN.
Mulți dezvoltatori consideră că PHP este un limbaj slab proiectat, deoarece creatorul, Rasmus Lerdorf nu la proiectat ca o limbă. PHP a început ca a soluție generică pentru site-uri Web, și a devenit rapid într-o mare bibliotecă de funcții independente.
Dar cu PHP 7 încercarea de a repara multe erori ale limbii, și cu liber OOP precum Laravel, PHP este o limbă mult mai bună acum decât a fost vreodată.
Deci, dezbaterea limbajului se reduce la alegerea ta personală. Îți place foarte mult scrierea JavaScript? Apoi, Nodul cu un stack MEAN ar putea fi în valoare.
Dacă știți deja PHP și doriți să rămâneți la ceea ce știi, LAMP este și o cale viabilă.
Aspecte generale:
Sunt mai multe straturi din fiecare stivă de web pentru a compara, inclusiv sistemul de operare, software-ul server, baza de date și limba de backend.
(1) MEAN stiva de asemenea include unghiul care este un cadru frontend. Nu există niciun cadru necesar într-o stivă LAMP, dar puteți oricând să adăugați propria dvs. aplicație pe care o construiți.
(2) În ceea ce privește sistemul de operare, stackul LAMP caută un derivat al Linux. Linux este de obicei cea mai bună alegere pentru un mediu de server indiferent de stivă, și este valabil și pentru MEAN.
(3) Acum, sistemul de operare al serverului este doar software-ul computerului, dar nu este acesta software de server web. Pentru a obține acest lucru aveți nevoie de un program ca Apache sau nginx. LAMP utilizează Apache deoarece este una dintre cele mai stabile opțiuni disponibile.
(4) MEAN utilizează serverul Node.js care este parte a pachetului de noduri. Este încă destul de nou și, deși există o mulțime de suport acolo, nodul nu are nicăieri aceeași comunitate ca Apache.
(5) De asemenea, un server Node cere un backend de JavaScript (fără extensii). Apache permite majoritatea limbajelor backend, și există numeroase extensii gratuite pentru o mai mare susținere. Dar, de acum, Apache nu are nimic de suport pentru noduri.
(6) Gestionarea bazelor de date este locul unde veți găsi cea mai mare diferență. LAMP utilizează MySQL pentru stocarea relațională a datelor, în timp ce MEAN utilizează MongoDB care este o bază de date non-relațională. Băncile non-relaționale sunt mult mai repede, și oferă o metodă mai ușoară de scalare cu un trafic mai mare.
(7) Ține minte că PHP nu se limitează numai la MySQL. Poate folosi MongoDB și alte alternative, cum ar fi PostgreSQL sau SQLite. Este doar faptul că majoritatea dezvoltatorilor PHP cunosc MySQL, deci este principalul concurent pentru un stivutip tipic LAMP.
(8) MEAN stive de obicei alearga mai repede și scară mai mare, dar necesită mult mai mult timp și cunoștințe despre server pentru a învăța sistemul. Stivele LAMP sunt a încercat și-adevărat, și ei vin afara din cutie cu cea mai sigură infrastructură și cel mai larg suport posibil.
(9) Limbile de programare fac o diferență majoră între cele două stive. LAMP lucrează în primul rând pe PHP care include WordPress și frameworkul Laravel. MEAN funcționează pe ExpressJS / NodeJS pentru backend cu AngularJS pe frontend.
(10) MEAN este stack full JavaScript, și există multe lucruri pe care va trebui să le învățați pentru a fi difuzate. E o alegerea frecventă a noilor companii dispus să împingă limitele în dezvoltarea aplicațiilor web. Lampa este mai tradițională cu JS pe interfață, PHP pe backend. Este făcut pentru persoanele care doresc doar să accesați site-urile online fără prea multe îngrijorări.
Consultați acest ghid de comparație pentru a afla mai multe. Nici o alegere nu este corectă sau greșită, doar diferită și făcută pentru diferite proiecte.
Înfășurarea în sus
Aș spune că majoritatea site-urilor se îndreaptă spre stackul de LAMP deoarece sunt testate și au o mulțime de fire Q & A utile, indexate în Google. MEAN este în continuă creștere, de asemenea, are o mulțime de sprijin, dar poate fi mai tehnic decât majoritatea oamenilor vor să facă față.
Simțiți-vă liber să încercați pe amândouă și să le vedeți singuri. E posibil să instalați ambele setări local pe computerul dvs. și construiți pe ele fără un server de la distanță.
Și dacă căutați mai multe informații despre oricare din stiluri, am colectat mai jos un set de linkuri utile.
- Aflați cum să construiți aplicații Web moderne cu MEAN (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Cum se instalează Linux, Apache, MySQL, PHP (LAMP) Stack pe Debian 8 (Digitalocean.com)