MEAN vs. LAMP Stack Plussid ja miinused
Veebipakid on aastakümnete jooksul arenenud tehnoloogia ja taustaprogrammide keeltes. Praegu on kaks kõige populaarsemat veebikanali LAMP ja MEAN. Nad toetuvad kahele erinevale tehnoloogiale taustaprogrammide keeltes, andmebaasides ja serverikeskkondades. "Stack" termin viitab tehnoloogiaid, mis üksteise peale virnavad, et luua veebiserveri keskkond.
Käesolevas artiklis tahaksin selgitada neid kahte veebipakki, vaadates nende tehnoloogilisi valikuid nii plusse kui miinuseid. Kus iga korstnat paistab? Ja millised projektid võiksid mõlemast võimalusest kõige rohkem kasu saada? Kui olete veebitehnoloogiate puhul uus või soovite lihtsalt nende kahe korstna kohta teada saada, on selles juhendis kõik, mida vajate.
Traditsiooniline LAMP-i areng
Enamik arendajaid peaks teadma traditsioonilisest LAMP stackist, sest see on olnud juba algusest peale. LAMP tähistab Linux, Apache, MySQL ja PHP. Kõik need on individuaalsed tarkvarapaketid, mis on ühendatud mitmekülgse serverilahenduse loomiseks.
Suurim põhjus LAMP-ile jääda on turvalisust ja laialdast toetust. See on olnud juba aastakümneid ja see on tõestatud meetod veebisaitide hostimiseks.
Kõik taustaprogrammid nagu PHP ja MySQL on hästi tuntud ja toetavad kõik suured teenusepakkujad. Kui töötate LAMP-stacki abil, saate põhimõtteliselt majutada kõikjal. Lisaks saad juurdepääs kõige populaarsematele CMS mootoritele. WordPress, Drupal ja Joomla kõik töötavad PHP / MySQL.
Seal on kohandatavad valikud LAMP arhitektuuri sees, näiteks LEMP, mis asendab Apache'i nginxiga. Sa võid ka käivitada variandi Windowsi serveris WAMP stackina.
Kuid kõik põhitarkvara - sealhulgas Apache, MySQL ja PHP - olid avatud hanked, peamiselt Linuxile. Sellepärast on Linux serverikeskkonna jaoks kõige mõttekam, mistõttu LAMP on ajaprooviks kaasaegse veebiarenduse jaoks.
Enamik arendajaid liiguvad sellel marsruudil, sest see on lihtsaim viis veebilehe hankimiseks võrgus. Leiad palju foorumeid, mis katavad kõike, mida vajate LAMP-i keskkonna konfigureerimiseks ja tõrkeotsinguks. Näiteks saate selle ServFault'i küsimuse üle vaadata.
JavaScript Backend koos MEANiga
Node.js on uusim tehnoloogia arendajatele, kes otsustavad käivitada JavaScriptiga ehitatud skaleeritavaid rakendusi. Sõlm volitab MEANi virna, ja pakub esmast eelist: kõike töötab ühes keeles.
MEAN tähistab MongoDB, Express.js, Angular.js, ja muidugi Node.js. See lühend ei nõua serveri operatsioonisüsteemi või serveritarkvara kasutamist. MEAN pinu võib töötada mis tahes operatsioonisüsteemiga, ja Node on varustatud isegi oma serveriga, et käitada JS-i taustal.
Mean.io veebilehel leiate palju dokumente ja tuge.
Kuigi see virn on pälvinud palju tähelepanu, on sellel ikka veel peaaegu ühtegi stabiilse toe kogust traditsioonilise LAMP stackina.
Miks peaks keegi minuga koos minema? Sest see on lõpuks kiiremini ja lihtsam skaalata. MongoDB on a NoSQL andmebaas mis optimeerib päringud. Fullstacki JavaScripti kasutamine parandab ka arengut, sest üks keel kehtib kõigi esiplaanide ja taustaprogrammide puhul.
Lisaks paljudele teistele JS-i raamistikele on turul stabiilsed lahendused. Näiteks saab MEAN-i ümber lülitada MEENi korstnat nurgaga asendamine inimesega.
Programmeerijad armastavad MEANi virna, sest see on eraldab hoolduse ja kasvu koodi. See teeb selle JavaScripti veebirakendusi on lihtsam korraldada, et nad töötaksid looduskeskkonnas.
Sellel teemal on palju õppida ja see on ilmselt suurim takistus uute arendajate sisenemiseks. Kõigi MEAN rakenduse haldamiseks vajalike tehnoloogiate õppimine võib kesta mitu kuud. Aga kui sa armastad Node'i ja tahad JavaScripti käivitada, on see vaeva väärt.
Siin on mõned algajatele mõeldud õpetused, et alustada.
- Absoluutne algaja juhend Node.jsile
- Felixi Node.js algajate juhend
- Express.jsi tutvustus
- Õpi moodma MEAN abil kaasaegseid veebirakendusi
- Alustamine Node.js, Express ja MongoDB abil
PHP vs. sõlm
PHP on olnud alates 90. aastate keskpaigast ja on tõesti kõige populaarsem taustaprogramm. Paljud veebiarendajad alustavad PHP-ga (või lõpuks õpivad), sest see on nii veebipõhiste platvormide kui ka hostiteenuse pakkujate seas ülekaalus.
Sõlm on uuem raamistik, kuid selle populaarsus on tõusnud erakordselt kiiresti. See hõlmab ka NPM-i populaarsust pakettide haldajana veebiarendajatele ning laieneb veelgi võimsamatesse frontendiraamistikesse, nagu näiteks nurk 2.
Node teine eelis on see, et see on kaasas oma veebiserver. JavaScript on kõigest MEAN-stacki juurest, nii et kui sa armastad JS-i, siis sa tõesti armastad MEAN-i veebirakenduste ehitamist.
Paljud arendajad tunnevad, et PHP on looja poolt halvasti kavandatud keel, Rasmus Lerdorf ei kujundanud seda keelteks. PHP algas a üldine veebisaitide lahendus, ja kasvas kiiresti suureks sõltumatute funktsioonide teegiks.
Aga PHP 7 üritab määrata palju keele vigu ja tasuta OOP näiteks Laravel, PHP on nüüd palju parem keel kui kunagi varem.
Nii et keele arutelu tuleb teie isiklik valik. Kas sa tõesti armastad JavaScripti kirjutada? Siis võib olla soovitatav kaaluda MEAN stackiga sõlme.
Kui te juba teate PHP-d ja tahate kinni pidada sellest, mida te teate, on LAMP ka elujõuline tee.
Üldised plusse ja miinuseid:
Seal on mitu kihti võrdlema iga veebipinu kohta, sealhulgas operatsioonisüsteem, serveritarkvara, andmebaas ja taustaprogramm.
(1) The MEAN virn ka sisaldab nurka mis on esikülje raamistik. LAMP-stackis pole vajalikku raamistikku, kuid saate alati oma rakenduse juurde lisada.
(2) OS-i puhul otsib LAMP stack Linuxi tuletist. Linux on tavaliselt parim valik serverikeskkonnale, olenemata virnast, ja see kehtib ka MEANi kohta.
(3) Nüüd on serveri operatsioonisüsteem vaid arvutitarkvara, kuid see pole nii veebiserveri tarkvara. Selle saamiseks vajate programmi nagu Apache või nginx. LAMP kasutab Apache'i, sest see on üks stabiilsemaid valikuid.
(4) MEAN kasutab serverit Node.js, mis on osa sõlme paketist. See on ikka veel üsna uus ja kuigi seal on palju tuge, on Nodeil peaaegu sama suurusega kogukond nagu Apache.
(5) Samuti vajab sõlme server JavaScripti taust (ilma laienditeta). Apache võimaldab enamik taustaprogramme, ja suurema toetuse saamiseks on olemas palju tasuta laiendusi. Aga praegu on Apacheil Node toe jaoks midagi.
(6) Andmebaasi haldamine on see koht, kust leiad suurim erinevus. LAMP kasutab relatiivsete andmete salvestamiseks MySQL-i, samas kui MEAN kasutab MongoDB-d, mis on mitte-relatsiooniline andmebaas. Mitte-relatsioonilised DBd on palju kiiremini, ja pakkuda lihtsamat meetodit suurema liiklusega skaleerimiseks.
(7) Pea meeles, et PHP ei ole piiratud ainult MySQL-iga. See võib kasutada MongoDB ja teisi alternatiive, nagu PostgreSQL või SQLite. See on lihtsalt see, et enamik PHP arendajaid tunneb MySQL-i, nii et see on peamine võistleja tüüpilise LAMP-stacki jaoks.
(8) Tüüpiliselt MEAN stacke jookse kiiremini ja suurem skaala, kuid vajavad süsteemi õppimiseks palju rohkem aega ja serveri teadmisi. LAMP korstnad on proovitud ja tõsi, ja nad tulevad Karbist välja kõige turvalisema infrastruktuuriga ja kõige laiema toetusega.
(9) Programmeerimiskeeled teevad kahe korstna vahel olulise erinevuse. LAMP töötab peamiselt PHP-s, mis sisaldab WordPressi ja Laraveli raamistikku. MEAN töötab ExpressJS / NodeJS-il, kus on tagaosas AngularJS.
(10) MEAN on täispikk JavaScript, ja seal on palju, mida sa pead õppima, et seda käitada. See on uute alustajate sagedane valik soovivad suruda piirid veebirakenduste arendamisse. LAMP on traditsioonilisem JS frontendil, PHP taustal. See on tehtud inimestele, kes lihtsalt tahavad saada veebisaite ilma liiga palju muret tekitamata.
Palun vaadake seda võrdlusjuhendit, et õppida veidi rohkem. Kumbki valik ei ole õige või vale, lihtsalt erinev ja tehtud erinevatele projektidele.
Pakkimine üles
Ma ütleksin, et enamik veebisaite toetub LAMP-stackile, sest see on testitud, ja sellel on palju Google'is indekseeritud kasulikke Q & A-teemasid. MEAN kasvab endiselt ja tal on ka palju tuge, kuid võib olla tehnilisem, kui enamik inimesi soovib tegeleda.
Julgelt proovige mõlemat ja vaadake neid ise. On võimalik installige mõlemad seaded kohapeal arvutisse ja tugineda neile ilma serveri serverita.
Ja kui otsite rohkem infot kummastki korstnast, olen ma kogunud käepärased lingid allpool.
- Õpi moodma MEAN abil kaasaegseid veebirakendusi (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Kuidas installida Linux, Apache, MySQL, PHP (LAMP) stack Debian 8-s (digitalocean.com)