A MEAN vs. LAMP Stack előnyei és hátrányai
Webes halom évtizedek óta fejlődtek a technológiai és a backend nyelvek terén. Jelenleg két legnépszerűbb web stack a LAMP és a MEAN. Két különböző technológiára támaszkodnak a backend nyelvek, adatbázisok és szerverkörnyezetek számára. A "verem" kifejezés a technológiák, amelyek egymásra helyezik a webkiszolgálói környezet létrehozását.
Ebben a cikkben szeretném tisztázni ezeket a két internetes stacket, megvizsgálva a technológiai választásaikat, mind az előnyöket, mind a hátrányokat. Hol állnak egymásra a verem? És milyen típusú projektek részesülnének a legjobban a két lehetőség közül? Ha új vagy a webes technológiákban, vagy csak meg szeretné ismerni ezeket a két stacket, akkor ez az útmutató mindent tartalmaz, amire szüksége lesz.
Hagyományos LAMP fejlesztés
A legtöbb fejlesztőnek tudnia kell a hagyományos LAMP veremről, mert már a korai web óta van. LÁMPA jelentése Linux, Apache, MySQL és PHP. Ezek mindegyike egyéni szoftvercsomagok, amelyek sokoldalú szerver megoldást alkotnak.
A LAMP-hoz való ragaszkodás legnagyobb oka biztonság és széles körű támogatás. Körülbelül évtizedek óta működik, és ez egy bevált módszer a weboldalak tárolására.
Az összes backend technológia, mint a PHP és a MySQL jól ismert, és minden jelentős tárhelyszolgáltató támogatja. Ha egy LAMP veremen dolgozik, akkor alapvetően bárhová is befogadható. Emellett kapsz hozzáférés a legnépszerűbb CMS motorokhoz. A WordPress, a Drupal és a Joomla minden PHP / MySQL-en fut.
Vannak testreszabható lehetőségek a LAMP architektúrán belül, mint például a LEMP, amely az Apache-t helyettesíti nginx-szel. WAMP veremként is futtathat egy változatot a Windows kiszolgálón.
Az összes alapvető szoftver - beleértve az Apache-t, a MySQL-t és a PHP-t - nyílt forrásból származtak, és elsősorban Linux-ra készült. Ezért a Linux a szerverkörnyezet leginkább értelme, ezért a LAMP a modern webes fejlesztések próbája volt.
A legtöbb fejlesztő ezen az úton megy, mert ez az a webhely online megszerzésének legegyszerűbb módja. Sok fórumot talál a fórumokon, amelyek mindent tartalmaznak, amire szükség van a LAMP környezet konfigurálásához és hibaelhárításához. Például megnézheti ezt a ServerFault kérdést a további információkért.
JavaScript hátteret a MEAN segítségével
A Node.js a legújabb technológia a fejlesztők számára, akik úgy döntöttek, hogy JavaScript-sel épített skálázható alkalmazásokat futtatnak. Csomópont a MEAN verem, és elsődleges előnyt kínál: mindent egyetlen nyelven fut.
ÁTLAGOS jelentése MongoDB, Express.js, Angular.js, és természetesen node.js. Ez a rövidítés nem igényel szerver operációs rendszert vagy kiszolgálószoftvert. A MEAN verem bármely operációs rendszeren futtatható, és a Node még a saját szerverével is rendelkezik, hogy a JS-et a backenden kezelje.
A Mean.io webhelyen sok dokumentációt és támogatást talál.
Bár ez a verem sok figyelmet szentelt, a hagyományos LAMP-veremben még mindig nincs közel a stabil támaszhoz.
Akkor miért megy valaki a MEAN-val? Mert ez végül gyorsabb és könnyebb skálázni. MongoDB a NoSQL adatbázis amely optimalizálja a lekérdezéseket. A fullstack JavaScript használata a fejlesztést is javítja, mivel az egyik nyelv minden frontend és backend munkára vonatkozik.
Ráadásul sok más JS-keretrendszer stabil megoldásokként érinti a piacot. Például a MEAN átkapcsolható a MEEN verem a Szög és az Ember helyettesítése.
A programozók szeretni fogják a MEAN veremet, mert elválasztja a karbantarthatóság és a növekedés kódját. Ez teszi könnyebben szervezheti meg a JavaScript webes alkalmazásokat, így azok természetes környezetben futnak.
Sokat kell tanulni ebben a témában, és ez talán a legnagyobb akadálya az új fejlesztők belépésének. A MEAN alkalmazás kezeléséhez szükséges összes technológia megtanulása hónapokig tarthat. De ha szereted a Node-ot, és mindent szeretnél futtatni a JavaScript-en, akkor ez megéri a fáradságot.
Íme néhány kezdőknek szóló útmutatók, amelyekkel elkezdheted.
- Abszolút kezdő útmutató a Node.js-hoz
- Felix Node.js kezdõi útmutatója
- Az Express.js bemutatása
- Ismerje meg, hogyan építhet modern webes alkalmazásokat a MEAN segítségével
- Első lépések a Node.js, az Express és a MongoDB használatával
PHP vs. Node
A PHP a 90-es évek közepe óta van, és valóban a legnépszerűbb backend nyelv. Számos webfejlesztő a (vagy végül megtanulja) a PHP-t kezdi, mert ez túlnyomórészt a webes platformokon és a tárhelyszolgáltatóknál.
A csomópont egy újabb keretrendszer, de népszerűsége rendkívül gyors. Ez magában foglalja az NPM népszerűségét a webes fejlesztők csomagkezelőjeként, és tovább bővíti olyan erős frontend keretekbe, mint például az Angular 2.
A Node másik előnye, hogy saját webszerverrel érkezik. A JavaScript a MEAN-verem mindennapi gyökere, így ha szereted a JS-t, akkor igazán szereted a MEAN webes alkalmazásokat.
Sok fejlesztő úgy érzi, hogy a PHP rosszul tervezett nyelv, mert az alkotó, Rasmus Lerdorf valójában nem nyelvet tervez. A PHP a általános megoldás a weboldalak számára, és gyorsan független könyvtárak nagy könyvtárává nőtt.
De a PHP 7-ben próbálta megjavítani a nyelv sok hibáját, és szabadon OOP olyan keretek, mint a Laravel, a PHP sokkal jobb nyelv, mint valaha.
Tehát a nyelvi vita elkezdődik a személyes választásod. Tényleg szereted a JavaScript írását? Akkor érdemes megfontolni a MEAN veremű csomópontot.
Ha már ismeri a PHP-t, és szeretne ragaszkodni ahhoz, amit tud, a LAMP életképes útvonal.
Általános előnyök és hátrányok:
Vannak több réteg az egyes veremeket összehasonlítani lehet, beleértve az operációs rendszert, a kiszolgálószoftvert, az adatbázist és a backend nyelvet.
(1) A MEAN verem is magában foglalja a Szög amely egy frontend keretrendszer. A LAMP-veremben nincs szükség semmilyen keretrendszerre, de bármikor hozzáadhatja sajátját bármelyik alkalmazáshoz.
(2) Ami az operációs rendszert illeti, a LAMP verem Linux-származékot keres. A Linux általában a legjobb választás szerverkörnyezethez, függetlenül a veremtől, és ez igaz a MEAN-ra is.
(3) Most a szerver operációs rendszere csak a számítógépes szoftver, de ez nem az webszerver szoftver. Ahhoz, hogy ezt megkapjuk, szüksége van egy olyan programra, mint az Apache vagy az nginx. A LAMP az Apache-ot használja, mert ez az egyik legstabilabb lehetőség.
(4) A MEAN a Node.js szervert használja a Csomópont csomag része. Még mindig meglehetősen új, és bár rengeteg támogatás van ott, a Node-nak nincs közel azonos méretű közössége, mint az Apache.
(5) Szükség van egy csomópont-kiszolgálóra is a JavaScript háttere (kiterjesztések nélkül). Apache lehetővé teszi a legtöbb backend nyelv használatát, és számos szabad bővítmény van a nagyobb támogatás érdekében. De most már az Apache-nak semmi nincs a Node támogatására.
(6) Adatbázis-kezelés hol találja meg a legnagyobb különbség. A LAMP a MySQL-t használja a relációs adatok tárolásához, míg a MEAN a MongoDB-t használja, amely nem relációs adatbázis. Nem relációs DB-ek sokkal gyorsabb, és könnyebb módszert biztosít a nagyobb forgalmú méretezéshez.
(7) Tartsd észben, hogy A PHP nem kizárólag a MySQL-re korlátozódik. Használhatja a MongoDB-t és más alternatívákat, mint a PostgreSQL vagy az SQLite. Csak a legtöbb PHP fejlesztő ismeri a MySQL-t, így ez a fő versenyző egy tipikus LAMP veremhez.
(8) A MEAN halom jellemzően fuss gyorsabban és nagyobb skála, de sokkal több időt és szerver tudást igényel a rendszer megismeréséhez. A LAMP halom kipróbált és igaz, és jönnek out-of-the-box a legbiztonságosabb infrastruktúrával és a legszélesebb körű támogatással.
(9) A programozási nyelvek jelentős különbséget tesznek a két verem között. A LAMP elsősorban PHP-n dolgozik, amely magában foglalja a WordPress és a Laravel keretrendszert. A MEAN az ExpressJS / NodeJS-en dolgozik a backendhez, ahol az AngularJS a frontenden található.
(10) A MEAN teljes verem JavaScript, sokat kell tanulnod, hogy megtanuld a futást. Ez egy gyakori új startupok kiválasztása hajlandó a webes alkalmazások fejlesztésének határát. A LAMP hagyományosabb JS a frontenden, PHP a backenden. Olyan emberek számára készült, akik csak akarnak az internetes oldalakat anélkül, hogy túlságosan aggódna.
Kérjük, olvassa el ezt az összehasonlító útmutatót, hogy egy kicsit megtanuljon. Egyik választás sem helyes vagy rossz, csak más, és különböző projektekre készült.
Csomagolás
Azt mondanám, hogy a legtöbb webhely a LAMP verem felé támaszkodik, mert tesztelték, és rengeteg hasznos Q&A szál van indexelve a Google-ban. A MEAN még mindig növekszik, és rengeteg támogatást is nyújt, de technikai jellegű lehet, mint a legtöbb ember, akivel foglalkozni akar.
Nyugodtan próbálkozzon mindkettővel, és nézze meg őket. Lehetséges telepítse mindkét beállítást helyileg a számítógépen, és távoli szerver nélkül építheti őket.
És ha több információt szeretne keresni az egyik stack-en, az alábbiakban néhány hasznos linket gyűjtöttem össze.
- Ismerje meg, hogyan építhet modern webes alkalmazásokat a MEAN segítségével (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Hogyan telepítsük a Linuxot, az Apache-t, a MySQL-t, a PHP-t (LAMP) a Debian 8-ra (Digitalocean.com)