MEAN vs LAMP STACK Fordeler og ulemper
Webstabler har utviklet seg i flere tiår med fremskritt innen teknologi og backend-språk. To av de mest populære webstablene er for øyeblikket LAMP og MEAN. De stole på to forskjellige teknologier for backend-språk, databaser og servermiljøer. "Stack" termen refererer til teknologier som stabler oppå hverandre for å skape et webservermiljø.
I denne artikkelen vil jeg tydeliggjøre disse to webstablene ved å se på deres teknologiske valg, både fordeler og ulemper. Hvor stammer hver stabel ut? Og hvilke typer prosjekter vil ha størst nytte av begge alternativene? Hvis du er ny på webteknologier eller bare vil lære om disse to stablene, har denne guiden alt du trenger.
Tradisjonell LAMP-utvikling
De fleste utviklere bør vite om den tradisjonelle LAMP-stabelen fordi den har eksistert siden den tidlige nettsiden. LAMPE står for Linux, Apache, MySQL og PHP. Hver av disse er individuelle programvarepakker som kombineres for å danne en allsidig serverløsning.
Den største grunnen til å holde fast med LAMP er sikkerhet og utbredt støtte. Det har eksistert i flere tiår, og det er en velprøvd metode for hosting nettsteder.
Alle backend tech som PHP og MySQL er godt kjent, og støttet av alle store hostingleverandører. Hvis du jobber på en LAMP-stabel, kan du i utgangspunktet være vert hvor som helst. I tillegg får du tilgang til de mest populære CMS-motorer. WordPress, Drupal og Joomla alle kjøres på PHP / MySQL.
Det er tilpassbare alternativer innenfor LAMP-arkitekturen som LEMP erstatter Apache med nginx. Du kan også kjøre en variant på en Windows-server som en WAMP-stabel.
Men all kjerneprogramvaren - inkludert Apache, MySQL og PHP - ble åpnet, og laget hovedsakelig for Linux. Det er derfor Linux gir mest mening for et servermiljø, og derfor har LAMP stått tidstesten for moderne webutvikling.
De fleste utviklere går denne ruten fordi den er Den enkleste måten å få et nettsted på nettet. Du finner mye støtte på fora som dekker alt du trenger for å konfigurere og feilsøke et LAMP-miljø. For eksempel kan du sjekke ut dette ServerFault-spørsmålet for mer info.
JavaScript Backend med MEAN
Node.js er den nyeste teknologien for utviklere som er fast bestemt på å kjøre skalerbare programmer bygget med JavaScript. node styrer MEAN-stakken, og gir en primær fordel: alt kjører på et enkelt språk.
MENER står for MongoDB, Express.js, Angular.js, og selvfølgelig node.js. Dette akronymet stiller ikke krav til et serveroperativsystem eller serverprogramvare. En MEAN-stabel kan kjøre på alle operativsystemer, og Node kommer med sin egen server til å håndtere JS på backend.
Du finner mye dokumentasjon og støtte på Mean.io nettsiden.
Selv om denne stakken har fått stor oppmerksomhet, har den fortsatt ingen steder nær den stabile støtten som en tradisjonell LAMP-stabel.
Så hvorfor ville noen gå med MEAN? Fordi det er til slutt raskere og lettere å skalere. MongoDB er en NoSQL database som optimaliserer spørringer. Bruken av fullstack JavaScript forbedrer også utviklingen fordi ett språk gjelder for alle frontend og backend arbeid.
Pluss mange andre JS-rammebetingelser slår markedet som stabile løsninger. For eksempel kan MEAN byttes over til en MEEN stakk erstatter vinkel med ember.
Programmører vil elske MEAN-stakken fordi den skiller kode for vedlikehold og vekst. Dette gjør det enklere å organisere JavaScript-webappene dine slik at de kjører i et naturlig miljø.
Det er mye å lære om dette emnet, og det er trolig den største hindringen for oppføring for nye utviklere. Lære alle teknologiene som kreves for å administrere en MEAN app, kan ta måneder. Men hvis du elsker Node, og vil kjøre alt på JavaScript, er dette vel verdt innsatsen.
Her er noen nybegynneropplæringer for å komme i gang.
- En absolutt nybegynners guide til Node.js
- Felix's Node.js Beginners Guide
- Introduksjon til Express.js
- Lær å bygge moderne webapplikasjoner med MEAN
- Komme i gang med Node.js, Express og MongoDB
PHP vs Node
PHP har eksistert siden midten av 90-tallet, og er virkelig det mest populære backend-språket. Mange webutviklere begynner med (eller til slutt lærer) PHP fordi det er så overveiende på tvers av web-plattformer og hosting-leverandører.
Node er et nyere rammeverk, men populariteten har steget ekstraordinært raskt. Dette inkluderer populariteten til NPM som en pakkebehandling for webutviklere, og utvides videre til kraftige frontend-rammer som Angular 2.
Den andre fordelen med Node er det kommer med sin egen webserver. JavaScript er roten til alt på en MEAN-stabel, så hvis du elsker JS så vil du virkelig elske å bygge MEAN web apps.
Mange utviklere føler at PHP er et dårlig utformet språk fordi skaperen, Rasmus Lerdorf utformet ikke det som et språk. PHP startet som en generisk løsning for nettsteder, og vokste raskt inn i et stort bibliotek med ikke-relaterte funksjoner.
Men med PHP 7 forsøker å fikse mange feil i språket, og med gratis OOP rammebetingelser, for eksempel Laravel, PHP er et mye bedre språk nå enn det noensinne har vært.
Så språket debatten kommer ned til ditt personlige valg. Liker du virkelig å skrive JavaScript? Da kan Node med en MEAN-stabel være verdt å vurdere.
Hvis du allerede kjenner PHP, og vil holde fast med det du vet, er LAMP også en levedyktig rute.
Samlet fordeler og ulemper:
Det er flere lag av hver webstabel for å sammenligne, inkludert operativsystem, serverprogramvare, database og backend-språk.
(1) De MEAN stack også inkluderer kantet som er en frontend rammeverk. Det er ikke noen påkrevd rammeverk i en LAMP-stabel, men du kan alltid legge til din egen til hvilken som helst app du bygger.
(2) Med hensyn til OS ser LAMP-stakken ut for et derivat av Linux. Linux er vanligvis det beste valget for et servermiljø uavhengig av stabelen, og det er sant for MEAN også.
(3) Nå er serverens OS bare datamaskinprogramvaren, men det er ikke det webserver programvare. For å få dette trenger du et program som Apache eller nginx. LAMP bruker Apache fordi det er et av de mest stabile valgene som er tilgjengelige.
(4) MEAN bruker Node.js serveren som er en del av Node-pakken. Det er fortsatt ganske nytt, og mens det er rikelig med støtte der ute, har Node ingen steder i nærheten av samme størrelse fellesskap som Apache.
(5) Også en Node-server krever en backend av JavaScript (uten utvidelser). Apache tillater de fleste backend-språk, og det er mange gratis utvidelser for større støtte. Men akkurat nå har Apache ingenting for Node-støtte.
(6) Database ledelse er der du finner den største forskjellen. LAMP bruker MySQL for relasjonell datalagring, mens MEAN bruker MongoDB som er en ikke-relasjonell database. Ikke-relasjonelle DBs er mye raskere, og gi en enklere metode for skalering med høyere trafikk.
(7) Husk at PHP er ikke begrenset utelukkende til MySQL. Det kan bruke MongoDB og andre alternativer som PostgreSQL eller SQLite. Det er bare at de fleste PHP-utviklere kjenner MySQL, så det er den viktigste konkurrenten for en typisk LAMP-stabel.
(8) MEAN stabler vanligvis løp fortere og skala større, men krever mye mer tid og server kunnskap for å lære systemet. LAMP stabler er prøvd-og-sann, og de kommer ut av boksen med den sikreste infrastrukturen og den bredeste støtten som er tenkelig.
(9) Programmeringsspråk gjør en stor forskjell mellom de to stablene. LAMP fungerer primært på PHP som inkluderer WordPress og Laravel-rammeverket. MEAN fungerer på ExpressJS / NodeJS for backend med AngularJS på frontenden.
(10) MEAN er full-stack JavaScript, og det er mye du trenger å lære å få det som kjører. Det er en Hyppig valg av nye oppstart villig til å presse grensene i web app utvikling. LAMP er mer tradisjonell med JS på fronten, PHP på baksiden. Det er laget for folk som bare vil få nettsider på nettet uten for mye bekymringer.
Vennligst sjekk ut denne sammenligningsveiledningen for å lære litt mer. Verken valget er riktig eller feil, bare annerledes og laget for ulike prosjekter.
Innpakning
Jeg vil si at de fleste nettsteder lener seg mot LAMP-stabelen fordi den er testet, og har mange nyttige Q & A-tråder indeksert i Google. MEAN vokser fortsatt og har også mye støtte, men kan være mer teknisk enn de fleste ønsker å håndtere.
Du er velkommen til å prøve begge deler, og se dem selv. Det er mulig å installer begge oppsettene lokalt på datamaskinen, og bygge på dem uten en ekstern server.
Og hvis du leter etter mer info på begge stabler, har jeg samlet et sett med nyttige lenker nedenfor.
- Lær å bygge moderne webapplikasjoner med MEAN (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Slik installerer du Linux, Apache, MySQL, PHP (LAMP) Stack på Debian 8 (Digitalocean.com)