MEAN vs. LAMP Stack Plussat ja miinukset
Web-pinot ovat kehittyneet vuosikymmenien aikana tekniikan ja taustakielien edistymisellä. Kaksi suosituinta verkkopinoa ovat tällä hetkellä LAMP ja MEAN. Ne tukeutuvat kahteen eri tekniikkaan taustakieliä, tietokantoja ja palvelinympäristöjä varten. "Pino"-termi viittaa teknologiat, jotka pinoavat toistensa päälle, jotta voidaan luoda web-palvelinympäristö.
Tässä artikkelissa haluan selventää näitä kahta verkkopinoa tarkastelemalla niiden teknologiavalintoja, sekä etuja että haittoja. Missä kukin pino excel? Ja millaisia hankkeita hyödyttäisivät eniten kumpaakin vaihtoehtoa? Jos olet uusi web-teknologioihin tai haluat vain oppia näistä kahdesta pinosta, tässä oppaassa on kaikki mitä tarvitset.
Perinteinen LAMP-kehitys
Useimpien kehittäjien tulisi tietää perinteisestä LAMP-pinosta, koska se on ollut jo alusta lähtien. LAMPPU tarkoittaa Linux, Apache, MySQL ja PHP. Kukin näistä on yksittäisiä ohjelmistopaketteja, jotka yhdistetään monipuoliseksi palveluratkaisuksi.
Suurin syy pitää kiinni LAMP: sta turvallisuutta ja laajaa tukea. Se on ollut jo vuosikymmenten ajan, ja se on osoittautunut menetelmä sivustojen ylläpitämiseksi.
Kaikki backend-tekniikka, kuten PHP ja MySQL, ovat hyvin tunnettuja ja jokaista suurta hosting-palvelujen tarjoajaa. Jos työskentelet LAMP-pinossa, voit periaatteessa isännöidä missä tahansa. Lisäksi saat pääsy suosituimpiin CMS-moottoreihin. WordPress, Drupal ja Joomla kaikki toimivat PHP / MySQL: ssä.
On muokattavissa olevat vaihtoehdot LAMP-arkkitehtuurin sisällä, kuten LEMP, joka korvaa Apache nginxin kanssa. Voit myös käyttää Windows-palvelimen versiota WAMP-pinoina.
Kuitenkin kaikki ydinohjelmistot, kuten Apache, MySQL ja PHP - olivat avoinna, ja tehty pääasiassa Linuxille. Siksi Linux on kaikkein järkevin palvelinympäristössä, ja siksi LAMP on pysynyt ajan testissä nykyaikaiselle web-kehitykselle.
Useimmat kehittäjät menevät tähän reittiin, koska se on yksinkertaisin tapa saada verkkosivusto verkossa. Löydät paljon tukea foorumeilla, jotka kattavat kaiken, mitä tarvitset LAMP-ympäristön määrittämiseen ja vianmääritykseen. Voit esimerkiksi tarkistaa tämän ServerFault-kysymyksen saadaksesi lisätietoja.
JavaScript-taustajärjestelmä, jossa on MEAN
Node.js on uusin tekniikka kehittäjille, jotka ovat päättäneet suorittaa JavaScriptillä rakennettuja skaalattavia sovelluksia. Solmu valtuuttaa MEAN-pinon, ja tarjoaa ensisijaisen edun: kaikki toimii yhdellä kielellä.
TARKOITTAA tarkoittaa MongoDB, Express.js, Angular.js, Ja tietenkin Node.js. Tämä lyhenne ei vaadi palvelimen käyttöjärjestelmää tai palvelinohjelmistoa. MEAN-pino voi ajaa missä tahansa käyttöjärjestelmässä, ja solmussa on jopa oma palvelin, joka käsittelee JS: n taustalla.
Löydät paljon dokumentaatiota ja tukea Mean.io-sivustolla.
Vaikka tämä pino on saanut paljon huomiota, sillä ei ole missään määrin vakaan tuen määrää perinteisenä LAMP-pinona.
Miksi kukaan menisi MEANin kanssa? Koska se on lopulta nopeammin ja helpompi skaalata. MongoDB on a NoSQL-tietokanta joka optimoi kyselyt. Fullstack JavaScriptin käyttö parantaa myös kehitystä, koska yksi kieli koskee kaikkia frontend- ja backend-töitä.
Lisäksi monet muut JS-järjestelmät ovat markkinoiden vakaa ratkaisu. Esimerkiksi MEAN voidaan vaihtaa a-tilaan MEEN pino korvaa kulman ja ihmisen.
Ohjelmoijat rakastavat MEAN-pinoa, koska se on erottaa koodin ylläpidettävyydestä ja kasvusta. Tämä tekee sen helpompi järjestää JavaScript-web-sovelluksesi, jotta ne toimivat luonnollisessa ympäristössä.
Tästä aiheesta on paljon opittavaa, ja se on luultavasti suurin este uusien kehittäjien pääsylle. Kaiken MEAN-sovelluksen hallintaan tarvittavien tekniikoiden oppiminen voi kestää kuukausia. Mutta jos rakastat solmua ja haluat suorittaa kaiken JavaScriptissä, se on vaivan arvoista.
Tässä on joitakin aloittelijoiden opetusohjelmia, joiden avulla pääset alkuun.
- Absoluuttinen aloittelijan opas Node.js: lle
- Felixin Node.js-aloitusopas
- Express.js: n esittely
- Opi rakentamaan moderneja web-sovelluksia MEANin avulla
- Aloitusopas Node.js, Express ja MongoDB
PHP vs. solmu
PHP on ollut noin 90-luvun puolivälistä lähtien, ja se on todella suosituin backend-kieli. Monet web-kehittäjät aloittavat (tai lopulta oppivat) PHP: n, koska se on niin hallitseva web-alustojen ja hosting-palvelujen tarjoajien välillä.
Solmu on uudempi kehys, mutta sen suosio on noussut erittäin nopeasti. Tähän sisältyy myös NPM: n suosio web-kehittäjien pakettien hallinnoijana ja laajenee edelleen voimakkaiksi frontend-kehyksiksi, kuten Angular 2.
Toinen solmun etu on se, että se on mukana tulee oma web-palvelin. JavaScript on kaiken kaikkiaan MEAN-pinossa, joten jos rakastat JS: ää, rakastat todella rakentaa MEAN-web-sovelluksia.
Monet kehittäjät kokevat, että PHP on huonosti suunniteltu kieli, koska luoja, Rasmus Lerdorf ei suunnitellut sitä kieleksi. PHP alkoi a yleinen ratkaisu verkkosivuille, ja kasvoi nopeasti suureksi kirjastoksi, joka ei ole yhteydessä toisiinsa.
Mutta PHP 7 yrittää korjata monia kielen virheitä ja vapaasti OOP kuten Laravel, PHP on nyt paljon parempi kieli kuin koskaan.
Niinpä kielten keskustelu tulee henkilökohtainen valinta. Rakastatko todella JavaScriptin kirjoittamista? Sitten solmu, jossa on MEAN-pino, voi olla syytä harkita.
Jos tiedät jo PHP: n ja haluat pysyä tiedossa, LAMP on myös elinkelpoinen reitti.
Kokonaisuudet ja haitat:
On useita kerroksia jokaisesta verkkopinosta vertaillaan, mukaan lukien käyttöjärjestelmä, palvelinohjelmisto, tietokanta ja taustakieli.
(1) MEAN pino myös sisältää kulman joka on frontend-kehys. LAMP-pinossa ei ole mitään tarvittavaa kehystä, mutta voit aina lisätä omasi mihin tahansa rakennettuun sovellukseen.
(2) OS: n osalta LAMP-pino etsii Linuxin johdannaista. Linux on tyypillisesti paras valinta palvelinympäristöstä riippumatta pinosta, ja se pätee myös MEANiin.
(3) Nyt palvelimen käyttöjärjestelmä on vain tietokoneohjelmisto, mutta se ei ole Web-palvelinohjelmisto. Saadaksesi tämän tarvitset ohjelman, kuten Apache tai nginx. LAMP käyttää Apachea, koska se on yksi vakavimmista vaihtoehdoista.
(4) MEAN käyttää Node.js-palvelinta, joka on osa solmupakettia. Se on edelleen melko uusi, ja vaikka siellä on runsaasti tukea, solmulla ei ole missään lähellä saman kokoista yhteisöä kuin Apache.
(5) Myös solmupalvelin vaatii JavaScriptin taustalla (ilman laajennuksia). Apache sallii useimmat taustakielet, ja on olemassa monia ilmaisia laajennuksia suuremman tuen saamiseksi. Mutta tällä hetkellä Apacheilla ei ole mitään solmujen tukemiseen.
(6) Tietokannanhallinta on missä löydät suurin ero. LAMP käyttää MySQL: ää relaatiotietojen tallennusta varten, kun taas MEAN käyttää MongoDB: tä, joka on ei-relaatiotietokanta. Ei-relaatiotietokannat ovat paljon nopeampi, ja tarjota helpompi tapa skaalata suurempaa liikennettä.
(7) Pidä mielessä, että PHP ei rajoitu pelkästään MySQL: ään. Se voi käyttää MongoDB: tä ja muita vaihtoehtoja, kuten PostgreSQL tai SQLite. Se on vain, että useimmat PHP-kehittäjät tuntevat MySQL: n, joten se on tärkein kilpailija tyypilliselle LAMP-pinolle.
(8) MEAN pinoja tyypillisesti juokse nopeampaa ja mittakaava suurempi, mutta tarvitsevat paljon enemmän aikaa ja palvelimen tietämystä järjestelmän oppimiseksi. LAMP-pinot ovat kokeiltu ja totta, ja he tulevat ulos laatikosta turvallisimman infrastruktuurin ja laajimman mahdollisen tuen kanssa.
(9) Ohjelmointikielet ovat merkittävä ero näiden kahden pinon välillä. LAMP toimii pääasiassa PHP: ssä, joka sisältää WordPressin ja Laravelin kehyksen. MEAN toimii ExpressJS / NodeJS-ohjelmalla, jonka etuosassa on AngularJS.
(10) MEAN on koko pino-JavaScript, ja siellä on paljon, mitä sinun tarvitsee oppia saamaan tämä juoksu. Se on a usein uusia uusia yrityksiä halukas työntämään rajat web-sovellusten kehittämiseen. LAMP on perinteisempi JS etupaneelissa, PHP taustalla. Se on tarkoitettu ihmisille, jotka haluavat vain saada verkkosivustoja verkossa ilman liikaa huolta.
Tutustu tähän vertailuoppaaseen oppiaksesi hieman enemmän. Kumpikaan valinta ei ole oikea tai väärä, vain erilainen ja tehty eri hankkeille.
Käärimistä
Sanoisin, että useimmat sivustot nojaavat kohti LAMP-pinoa, koska se on testattu, ja siinä on paljon hyödyllisiä Q & A-säikeitä, jotka on indeksoitu Googlessa. MEAN kasvaa edelleen, ja sillä on myös runsaasti tukea, mutta se voi olla teknistä enemmän kuin useimmat ihmiset haluavat käsitellä.
Voit vapaasti kokeilla molempia ja nähdä ne itse. On mahdollista asenna molemmat asetukset paikallisesti tietokoneeseen ja rakenna niitä ilman etäpalvelinta.
Ja jos etsit lisää tietoa kummassakin pinossa, olen kerännyt joukon käteviä linkkejä alla.
- Opi rakentamaan moderneja web-sovelluksia MEANin avulla (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Kuinka asentaa Linux, Apache, MySQL, PHP (LAMP) Stack Debian 8: een (Digitalocean.com)