MEAN versus LAMP Stack Voors en tegens
Webstapels zijn in de loop van tientallen jaren geëvolueerd met technologische en backend-talen. Twee van de meest populaire webstacks zijn LAMP en MEAN. Ze vertrouwen op twee verschillende technologieën voor backend-talen, databases en serveromgevingen. De "stapel" term verwijst naar technologieën die op elkaar stapelen om een webserveromgeving te creëren.
In dit artikel wil ik deze twee webstacks verduidelijken door te kijken naar hun technologische keuzes, zowel voor- als nadelen. Waar blinkt elke stapel uit? En welke soorten projecten zouden het meest van beide opties profiteren? Als u nieuw bent met webtechnologieën of als u alleen meer wilt weten over deze twee stapels, heeft deze handleiding alles wat u nodig hebt.
Traditionele LAMP-ontwikkeling
De meeste ontwikkelaars zouden de traditionele LAMP-stack moeten kennen, omdat deze al sinds het eerste web bestaat. LAMP betekent Linux, Apache, MySQL en PHP. Elk van deze zijn individuele softwarepakketten die worden gecombineerd om een veelzijdige serveroplossing te vormen.
De grootste reden om bij LAMP te blijven is veiligheid en brede ondersteuning. Het bestaat al tientallen jaren en het is een beproefde methode om websites te hosten.
Alle back-endtechnologie zoals PHP en MySQL zijn bekend, en ondersteund door elke grote hostingprovider. Als je aan een LAMP-stack werkt, kun je in principe overal hosten. Bovendien krijg je toegang tot de meest populaire CMS-engines. WordPress, Drupal en Joomla draaien allemaal op PHP / MySQL.
Er zijn aanpasbare opties binnen de LAMP-architectuur zoals LEMP ter vervanging van Apache door nginx. U kunt ook een variant op een Windows-server uitvoeren als een WAMP-stack.
Maar alle kernsoftware - inclusief Apache, MySQL en PHP - waren open source, en voornamelijk gemaakt voor Linux. Daarom is Linux het meest logisch voor een serveromgeving en daarom heeft LAMP de tand des tijds goed doorstaan voor moderne webontwikkeling.
De meeste ontwikkelaars gaan deze route omdat het is de eenvoudigste manier om een website online te krijgen. U vindt veel ondersteuning op forums die alles omvatten wat u nodig hebt om een LAMP-omgeving te configureren en problemen op te lossen. U kunt deze ServerFault-vraag bijvoorbeeld bekijken voor meer informatie.
JavaScript Backend met MEAN
Node.js is de nieuwste technologie voor ontwikkelaars die vastbesloten is om schaalbare applicaties te gebruiken die gebouwd zijn met JavaScript. Knooppunt voedt de MEAN-stapel, en biedt een primair voordeel: alles werkt op één taal.
GEMIDDELDE betekent MongoDB, Express.js, Angular.js, en uiteraard Node.js. Dit acroniem verplicht geen serverbesturingssysteem of serversoftware. EEN BETERE stapel kan op elk OS draaien, en Node komt zelfs met een eigen server om JS op de backend af te handelen.
U vindt veel documentatie en ondersteuning op de Mean.io-website.
Hoewel deze stapel veel aandacht heeft gekregen, is deze nog lang niet in de buurt van de hoeveelheid stabiele ondersteuning als een traditionele LAMP-stack.
Dus waarom zou iemand gaan met MEAN? Omdat het is uiteindelijk sneller en gemakkelijker te schalen. MongoDB is een NoSQL-database die zoekopdrachten optimaliseert. Het gebruik van JavaScript volstack verbetert ook de ontwikkeling omdat één taal van toepassing is op alle frontend- en backend-werkzaamheden.
En vele andere JS-raamwerken raken de markt als stabiele oplossingen. MEAN kan bijvoorbeeld worden omgeschakeld naar een MEEN stapel Hoekig vervangen door Sintel.
Programmeurs zullen dol zijn op de MEAN-stack, omdat het scheidt code voor onderhoudbaarheid en groei. Dit maakt het gemakkelijker om uw JavaScript-webapps te organiseren, zodat ze in een natuurlijke omgeving worden uitgevoerd.
Over dit onderwerp valt veel te leren, en dat is waarschijnlijk de grootste toetredingsdrempel voor nieuwe ontwikkelaars. Het leren van alle technologieën die nodig zijn om een MEAN-app te beheren, kan maanden duren. Maar als je van Node houdt en alles op JavaScript wilt laten draaien, is dit de moeite waard.
Hier zijn enkele tutorials voor beginners om u op weg te helpen.
- Een absolute beginnershandleiding voor Node.js
- Felix's Node.js-beginnersgids
- Inleiding tot Express.js
- Leer om moderne web-apps met MEAN te bouwen
- Aan de slag met Node.js, Express en MongoDB
PHP vs. Node
PHP bestaat al sinds het midden van de jaren 90 en is echt de meest populaire back-endtaal. Veel webontwikkelaars starten met (of leren uiteindelijk) PHP omdat het zo overheersend is op webplatforms en hostingproviders.
Knooppunt is een nieuwer kader, maar de populariteit ervan is buitengewoon snel gestegen. Dit omvat de populariteit van NPM als pakketbeheerder voor webontwikkelaars en breidt zich verder uit in krachtige frontend-frameworks zoals Angular 2.
Het andere voordeel van Node is dat het komt met een eigen webserver. JavaScript staat aan de basis van alles op een MEAN-stack, dus als je van JS houdt, dan vind je het geweldig om MEAN-webapps te bouwen.
Veel ontwikkelaars vinden dat PHP een slecht ontworpen taal is omdat de maker, Rasmus Lerdorf heeft het niet als een taal ontworpen. PHP begon als een generieke oplossing voor websites, en groeide snel uit tot een grote bibliotheek van niet-gerelateerde functies.
Maar met PHP 7 proberen veel fouten in de taal te herstellen, en met gratis OOP frameworks, zoals Laravel, PHP is nu een veel betere taal dan ooit tevoren.
Dus het taaldebat komt neer op uw persoonlijke keuze. Ben je dol op het schrijven van JavaScript? Dan is een knooppunt met een MEAN-stack misschien de moeite waard om te overwegen.
Als je PHP al kent en je wilt vasthouden aan wat je weet, is LAMP ook een haalbare route.
Algemene voors en tegens:
Er zijn meerdere lagen van elke webstack om te vergelijken, inclusief besturingssysteem, serversoftware, database en back-endtaal.
(1) De BETEKENEN stapel ook omvat hoekig wat een frontend raamwerk is. Er is geen verplicht raamwerk in een LAMP-stack, maar je kunt altijd je eigen framework toevoegen aan elke app die je bouwt.
(2) Met betrekking tot OS zoekt de LAMP-stack naar een Linux-derivaat. Linux is meestal de beste keuze voor een serveromgeving, ongeacht de stack, en het is ook waar voor MEAN.
(3) Nu is het besturingssysteem van de server slechts de computersoftware, maar het is niet het webserver software. Om dit te krijgen heb je een programma nodig zoals Apache of Nginx. LAMP gebruikt Apache omdat het een van de meest stabiele keuzes is die beschikbaar zijn.
(4) MEAN gebruikt de Node.js-server die dat is onderdeel van het knooppuntpakket. Het is nog steeds vrij nieuw, en hoewel er voldoende ondersteuning is, heeft Node nergens in de buurt van dezelfde community als Apache.
(5) Ook een Node-server vereist een backend van JavaScript (zonder uitbreidingen). Apache biedt de meeste backend-talen, en er zijn veel gratis extensies voor meer ondersteuning. Maar vanaf nu heeft Apache niets meer voor Node-ondersteuning.
(6) Database management is waar je zult vinden het grootste verschil. LAMP gebruikt MySQL voor relationele gegevensopslag, terwijl MEAN MongoDB gebruikt, een niet-relationele database. Niet-relationele DB's zijn veel sneller, en bieden een gemakkelijkere methode om te schalen met meer verkeer.
(7) Onthoud dat PHP is niet alleen beperkt tot MySQL. Het kan MongoDB en andere alternatieven zoals PostgreSQL of SQLite gebruiken. Het is gewoon dat de meeste PHP-ontwikkelaars MySQL kennen, dus het is de belangrijkste kandidaat voor een typische LAMP-stack.
(8) MEAN-stacks meestal loop sneller en schaal groter, maar vereisen veel meer tijd en serverkennis om het systeem te leren. LAMP-stacks zijn beproefde en ware, en ze komen kant-en-klare met de meest veilige infrastructuur en de breedste ondersteuning denkbaar.
(9) Programmeertalen vormen een groot verschil tussen de twee stapels. LAMP werkt voornamelijk op PHP met WordPress en het Laravel-framework. MEAN werkt op ExpressJS / NodeJS voor de backend met AngularJS op de frontend.
(10) MEAN is JavaScript met volledige stack, en er is veel dat je moet leren om dat draaiende te krijgen. Het is een frequente keuze van nieuwe startups bereid om de grenzen te verleggen in de ontwikkeling van webapps. LAMP is traditioneler met JS op de frontend, PHP op de backend. Het is gemaakt voor mensen die gewoon willen krijg websites online zonder al te veel zorgen.
Bekijk deze vergelijkingsgids om iets meer te leren. Geen van beide is goed of fout, alleen anders en gemaakt voor verschillende projecten.
Afsluiten
Ik zou zeggen dat de meeste websites naar de LAMP-stack neigen omdat deze is getest en veel nuttige Q & A-discussies bevat die zijn geïndexeerd in Google. MEAN groeit nog steeds en heeft ook veel steun, maar is misschien wel technischer dan de meeste mensen willen aanpakken.
Voel je vrij om beide te proberen en ze zelf te zien. Het is mogelijk om installeer beide instellingen lokaal op uw computer en bouw hierop zonder een externe server.
En als u op zoek bent naar meer informatie over beide stacks, heb ik hieronder een aantal handige links verzameld.
- Leer om moderne web-apps met MEAN te bouwen (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Hoe installeer ik Linux, Apache, MySQL, PHP (LAMP) Stack op Debian 8 (Digitalocean.com)