BETYD MOD LAMP Stack Fordele og ulemper
Webstabler har udviklet sig i årtier med fremskridt inden for teknologi og backend-sprog. To af de mest populære webstabler er i øjeblikket LAMP og MEAN. De er afhængige af to forskellige teknologier til backend-sprog, databaser og servermiljøer. "Stack" termen refererer til teknologier, der stabler oven på hinanden for at skabe et webserver miljø.
I denne artikel vil jeg gerne præcisere disse to webstabler ved at se på deres teknologibeslutninger, både fordele og ulemper. Hvor udmærker hver stabel sig? Og hvilke typer projekter vil mest udnytte de to muligheder? Hvis du er ny til webteknologier eller bare vil lære om disse to stabler, så har denne vejledning alt hvad du skal bruge.
Traditionel LAMP-udvikling
De fleste udviklere bør vide om den traditionelle LAMP stabel, fordi den har eksisteret siden den tidlige web. LAMPE står for Linux, Apache, MySQL og PHP. Hver af disse er individuelle softwarepakker, der kombineres for at danne en alsidig serverløsning.
Den største grund til at holde fast med LAMP er sikkerhed og udbredt støtte. Det har eksisteret i årtier, og det er en gennemprøvet metode til hosting websites.
Alle backend tech som PHP og MySQL er velkendte, og understøttet af alle større hosting-udbydere. Hvis du arbejder på en LAMP-stack, kan du stort set være vært overalt. Derudover får du adgang til de mest populære CMS-motorer. WordPress, Drupal og Joomla alle kører på PHP / MySQL.
Der er tilpasses muligheder inden for LAMP-arkitekturen, såsom LEMP, der erstatter Apache med nginx. Du kan også køre en variant på en Windows-server som en WAMP-stak.
Men al kernens software - herunder Apache, MySQL og PHP - var åbne, og primært lavet til Linux. Det er derfor, Linux har det mest fornuftige for et servermiljø, og derfor har LAMP stået tidstesten for moderne webudvikling.
De fleste udviklere går denne rute, fordi det er Den enkleste måde at få et websted online på. Du finder masser af support på fora, der dækker alt hvad du behøver for at konfigurere og fejlfinding et LAMP-miljø. For eksempel kan du tjekke dette ServerFault spørgsmål for mere info.
JavaScript Backend med MEAN
Node.js er den nyeste teknologi til udviklere, der er fast besluttet på at køre skalerbare applikationer bygget med JavaScript. Node styrer MEAN stakken, og tilbyder en primær fordel: alt kører på et enkelt sprog.
BETYDE står for MongoDB, Express.js, Angular.js, og selvfølgelig node.js. Dette akronym stiller intet krav til et server operativsystem eller server software. A MEAN stack kan køre på ethvert operativsystem, og Node kommer endda med sin egen server til at håndtere JS på backend.
Du finder masser af dokumentation og support på Mean.io hjemmeside.
Selvom denne stak har fået stor opmærksomhed, har den stadig ingen steder nær den stabile støtte som en traditionel LAMP-stak.
Så hvorfor ville nogen gå med MEAN? Fordi det er i sidste ende hurtigere og nemmere at skalere. MongoDB er en NoSQL database som optimerer forespørgsler. Brugen af fullstack JavaScript forbedrer også udviklingen, fordi ét sprog gælder for alle frontend og backend arbejde.
Plus mange andre JS-rammer rammer markedet som stabile løsninger. For eksempel kan MEAN skiftes til en MEEN stack udskiftning af vinkel med ember.
Programmører vil elske MEAN stacken fordi det adskiller kode for vedligeholdelighed og vækst. Dette gør det Nemere at organisere dine JavaScript-webapps, så de løber i et naturligt miljø.
Der er meget at lære om dette emne, og det er nok den største adgangsbarriere for nye udviklere. At lære alle de teknologier, der kræves for at administrere en MEAN app, kan tage måneder. Men hvis du elsker Node, og vil køre alt på JavaScript, er det værd at gøre.
Her er nogle begyndere 'tutorials for at komme i gang.
- En absolut nybegynder's guide til Node.js
- Felix's Node.js Beginners Guide
- Introduktion til Express.js
- Lær at opbygge moderne webapplikationer med MEAN
- Kom i gang med Node.js, Express og MongoDB
PHP vs Node
PHP har eksisteret siden midten af 90'erne, og er virkelig det mest populære backend-sprog. Mange webudviklere begynder med (eller i sidste ende lærer) PHP, fordi det er så overvejende på tværs af webplatforme og hostingudbydere.
Node er en nyere ramme, men dens popularitet er steget usædvanligt hurtigt. Dette omfatter populariteten hos NPM som pakkechef til webudviklere og udvider sig yderligere til kraftige frontend-rammer som Angular 2.
Den anden fordel ved Node er det leveres med sin egen webserver. JavaScript er kernen til alt på en MEAN-stak, så hvis du elsker JS så vil du virkelig elske at opbygge MEAN webapps.
Mange udviklere føler, at PHP er et dårligt designet sprog, fordi skaberen, Rasmus Lerdorf har faktisk ikke designet det som et sprog. PHP startede som en generisk løsning til hjemmesider, og voksede hurtigt ind i et stort bibliotek af ikke-relaterede funktioner.
Men med PHP 7 forsøger du at rette mange fejl i sproget og med gratis OOP rammer, som Laravel, PHP er et meget bedre sprog nu end det nogensinde har været.
Så sproget debatten kommer ned til dit personlige valg. Er du virkelig glad i at skrive JavaScript? Derefter kan Node med en MEAN stack være værd at overveje.
Hvis du allerede kender PHP, og vil holde fast ved, hvad du ved, er LAMP også en levedygtig rute.
Samlet fordele og ulemper:
Der er flere lag af hver webstabel til sammenligning, herunder operativsystem, server software, database og backend sprog.
(1) Det MEAN stack også inkluderer kantet som er en frontend ramme. Der er ikke nogen påkrævet ramme i en LAMP-stak, men du kan altid tilføje din egen til enhver app du bygger.
(2) Med hensyn til OS ser LAMP-stakken ud for et derivat af Linux. Linux er typisk det bedste valg for et servermiljø, uanset stack, og det er også vigtigt for MEAN.
(3) Serverens operativsystem er nu kun computersoftware, men det er ikke det webserver software. For at få dette skal du have et program som Apache eller nginx. LAMP bruger Apache, fordi det er et af de mest stabile valgmuligheder.
(4) MEAN bruger Node.js serveren som er en del af nodepakken. Det er stadig ret nyt, og selvom der er masser af support derude, har Node ingen steder i nærheden af samme størrelse samfund som Apache.
(5) Også en Node server kræver en backend af JavaScript (uden udvidelser). Apache tillader de fleste backend sprog, og der er mange gratis udvidelser til større support. Men lige nu har Apache intet til Node support.
(6) Databasestyring er hvor du finder den største forskel. LAMP bruger MySQL til relationel datalagring, mens MEAN bruger MongoDB, som er en ikke-relationel database. Ikke-relationelle DB'er er meget hurtigere, og give en lettere metode til skalering med højere trafik.
(7) Husk på at PHP er ikke begrænset udelukkende til MySQL. Det kan bruge MongoDB og andre alternativer som PostgreSQL eller SQLite. Det er bare, at de fleste PHP-udviklere kender MySQL, så det er den største konkurrent for en typisk LAMP-stak.
(8) Mean stacks typisk løb hurtigere og skala større, men kræver meget mere tid og server viden til at lære systemet. LAMP stabler er prøvede og sande, og de kommer ud af boksen med den mest sikre infrastruktur og den bredeste støtte, der kan forestilles.
(9) Programmeringssprog gør en stor forskel mellem de to stakke. LAMP arbejder primært på PHP, der omfatter WordPress og Laravel-rammerne. MEAN arbejder på ExpressJS / NodeJS til backend med AngularJS på frontenden.
(10) MEAN er fuld stack JavaScript, og der er meget, du skal lære at få det til at køre. Det er en Hyppigt valg af nye startups villig til at skubbe grænserne i web app udvikling. LAMP er mere traditionel med JS på fronten, PHP på bagsiden. Det er lavet til folk, der bare vil få hjemmesider online uden for mange bekymringer.
Se venligst denne sammenligningsguide for at lære lidt mere. Intet valg er rigtigt eller forkert, lige anderledes og lavet til forskellige projekter.
Afslutter
Jeg vil sige, at de fleste websites læner sig mod LAMP-stakken, fordi den er testet, og har mange nyttige Q & A-tråde indekseret i Google. MEAN vokser stadig og har også masser af støtte, men kan være mere teknisk end de fleste mennesker ønsker at håndtere.
Du er velkommen til at prøve begge og se dem selv. Det er muligt at installer begge opsætninger lokalt på din computer og bygge videre på dem uden en fjernserver.
Og hvis du leder efter mere info på hver stak, har jeg samlet et sæt nyttige links nedenfor.
- Lær at opbygge moderne webapplikationer med MEAN (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Sådan installeres Linux, Apache, MySQL, PHP (LAMP) Stack på Debian 8 (Digitalocean.com)