Ohjelmointi

Mikä on MEAN-pino? JavaScript-verkkosovellukset

MEAN-pino, määritelty

MEAN-pino on ohjelmistopino - eli joukko modernin sovelluksen muodostavia teknologiakerroksia -, joka on rakennettu kokonaan JavaScriptiin. MEAN edustaa JavaScriptin saapumista "full-stack development" -kielenä, joka suorittaa kaiken sovelluksessa käyttöliittymästä takapäähän. Kukin MEAN-kirjaimen nimikirjaimista tarkoittaa komponenttia pinossa:

  • MongoDB: Tietokantapalvelin, josta kysytään JSON: n (JavaScript Object Notation) avulla ja joka tallentaa tietorakenteet binaariseen JSON-muotoon
  • Ilmaista: Palvelinpuolen JavaScript-kehys
  • Kulma: Asiakaspuolen JavaScript-kehys
  • Node.js: JavaScript-ajonaikainen

Suuri osa MEANin vetovoimasta on johdonmukaisuus, joka johtuu siitä, että se on JavaScript läpi ja läpi. Kehittäjien elämä on yksinkertaisempaa, koska kaikki sovelluksen komponentit - tietokannan objekteista asiakaspuolen koodiin - on kirjoitettu samalla kielellä.

Tämä johdonmukaisuus on ristiriidassa LAMPin, web-sovelluskehittäjien pitkäaikaisen katkoksen, kanssa. Kuten MEAN, LAMP on lyhenne niille komponenteille, joita käytetään pinossa - Linux, Apache HTTP Server, MySQL ja joko PHP, Perl tai Python. Jokaisella pinon palalla on vähän yhteistä muiden kappaleiden kanssa.

Tämä ei tarkoita sitä, että LAMP-pino on huonompi. Sitä käytetään edelleen laajalti, ja jokainen pinoelementti hyötyy edelleen aktiivisesta kehitysyhteisöstä. Mutta käsitteellinen johdonmukaisuus, jonka MEAN tarjoaa, on siunaus. Jos käytät samaa kieltä ja monia samoja kielikäsitteitä pinon kaikilla tasoilla, kehittäjän on helpompi hallita koko pino kerralla.

Useimmissa MEAN-pinoissa on kaikki neljä komponenttia - tietokanta, käyttöliittymä, takapää ja toteutusmoottori. Tämä ei tarkoita, että pino koostuu vain nämä elementit, mutta ne muodostavat ytimen.

MongoDB

Kuten muut NoSQL-tietokantajärjestelmät, MongoDB käyttää mallia, joka ei sisällä skeemaa. Tiedot tallennetaan ja haetaan JSON-muotoisina asiakirjoina, joissa voi olla mikä tahansa määrä sisäkkäisiä kenttiä. Tämän joustavuuden ansiosta MongoDB soveltuu hyvin nopeaan sovelluskehitykseen nopeasti muuttuvien vaatimusten käsittelyssä.

MongoDB: n käyttöön liittyy useita varoituksia. Ensinnäkin, MongoDB: llä on oletusarvoisesti maine epävarmuudessa. Jos otat sen käyttöön tuotantoympäristössä, sinun on ryhdyttävä toimiin sen suojaamiseksi. Ja relaatiotietokannoista tai jopa muista NoSQL-järjestelmistä tuleville kehittäjille joudut viettämään jonkin aikaa tutustumalla MongoDB: hen ja sen toimintaan. Martin Heller sukelsi syvälle MongoDB 4: een katsauksessa, jossa hän puhuu MongoDB: n sisäisistä osista, kyselyistä ja haitoista.

Kuten muillakin tietokantaratkaisuilla, tarvitset jonkinlaista väliohjelmistoa kommunikoidaksesi MongoDB: n ja JavaScript-komponenttien välillä. Yksi yleinen valinta MEAN-pinolle on Mongoose. Mongoose tarjoaa paitsi liitettävyyden myös objektimallinnuksen, sovelluspuolen validoinnin ja useita muita toimintoja, joita et halua häiritsevän keksiä jokaista uutta projektia.

Express.js

Express on epäilemättä Node.js: n eniten käytetty verkkosovelluskehys. Express tarjoaa vain pienen joukon keskeisiä ominaisuuksia - se on pohjimmiltaan vähäinen, ohjelmoitava verkkopalvelin -, mutta sitä voidaan laajentaa laajennusten avulla. Tämä hieno muotoilu auttaa pitämään Expressin kevyen ja suorituskykyisenä.

Mikään ei sano, että MEAN-sovellus on toimitettava suoraan käyttäjille Expressin kautta, vaikka se on varmasti yleinen tilanne. Vaihtoehtoinen arkkitehtuuri on sijoittaa toinen web-palvelin, kuten Nginx tai Apache, Expressin eteen käänteisenä välityspalvelimena. Tämä mahdollistaa toimintojen, kuten kuormituksen tasaamisen, purkamisen erilliseen resurssiin.

Koska Express on tarkoituksella vähäinen, siihen ei liity paljon käsitteellisiä yleiskustannuksia. Expressjs.com-sivuston oppaat vievät sinut nopeasti yhteenvetoon perusasioista tietokantojen yhdistämiseen ja muualle.

Kulmikas

Kulmaista (aiemmin AngularJS) käytetään MEAN-sovelluksen käyttöliittymän rakentamiseen. Angular käyttää selaimen JavaScriptiä palvelimien toimittamien tietojen muotoiluun HTML-malleissa, jotta suuri osa verkkosivun renderoinnista voidaan siirtää asiakkaalle. Monet yhden sivun verkkosovellukset on rakennettu käyttöliittymän Angular-sovelluksella.

Yksi tärkeä huomautus: Kehittäjät työskentelevät Angularin kanssa kirjoittamalla TypeScriptiksi, joka on JavaScript-tyyppinen kirjoitettu kieli, joka kääntyy JavaScriptiksi. Joillekin ihmisille tämä rikkoo yhtä MEAN-pinon pääkäsitteistä - että JavaScriptiä käytetään kaikkialla ja yksinomaan. TypeScript on kuitenkin läheinen serkku JavaScriptille, joten siirtyminen näiden kahden välillä ei ole niin pirteää kuin muiden kielien kanssa.

Syvään sukellukseen Angulariin Martin Heller on tarjonnut sinut. Angular-opetusohjelmassaan hän opastaa sinua luomaan modernin, Angular-verkkosovelluksen.

Node.js

Viimeisenä mutta tuskin vähäisimpänä on Node.js - JavaScript-ajonaika, joka ohjaa MEAN-verkkosovelluksen palvelinpuolta. Solmu perustuu Googlen V8-JavaScript-moottoriin, samaan JavaScript-moottoriin, joka toimii Chrome-selaimessa. Node on monialustainen, toimii sekä palvelimilla että asiakkailla, ja sillä on tiettyjä suorituskykyetuja verrattuna perinteisiin verkkopalvelimiin, kuten Apache.

Node.js lähestyy verkkopyyntöjä eri tavalla kuin perinteiset verkkopalvelimet. Perinteisessä lähestymistavassa palvelin synnyttää uuden suorituslangan tai jopa haastaa uuden prosessin pyynnön käsittelemiseksi. Kutumislangat ovat tehokkaampia kuin haarautumisprosessit, mutta molempiin liittyy paljon yleiskustannuksia. Suuri määrä ketjuja voi aiheuttaa voimakkaasti kuormitetun järjestelmän käyttämään arvokkaita syklejä ketjujen ajoitukseen ja kontekstinvaihtoon lisäämällä viiveitä ja asettamalla rajoituksia skaalattavuudelle ja läpäisykyvylle.

Node.js on paljon tehokkaampi. Solmu suorittaa yksisäikeisen tapahtumasilmukan, joka on rekisteröity järjestelmään yhteyksien käsittelemiseksi, ja jokainen uusi yhteys aiheuttaa JavaScript-soittopyynnön. Takaisinsoittotoiminto voi käsitellä pyyntöjä, joilla ei ole estäviä I / O-puheluita, ja tarvittaessa luoda kudoksia altaasta suorittamaan esto- tai suorittintehoisia toimintoja ja kuormituksen tasapainottamiseksi CPU-ytimissä.

Node.js vaatii vähemmän muistia käsittelemään enemmän yhteyksiä kuin useimmat kilpailuarkkitehtuurit, jotka skaalautuvat säikeillä - mukaan lukien Apache HTTP Server, ASP.NET, Ruby on Rails ja Java-sovelluspalvelimet. Siten Solmesta on tullut erittäin suosittu valinta verkkopalvelimien, REST-sovellusliittymien ja reaaliaikaisten sovellusten, kuten chat-sovellusten ja pelien, rakentamiseen. Jos on yksi komponentti, joka määrittelee MEAN-pinon, se on Node.js.

Johdanto Node.js: iin on Martin Hellerin selittäjällä. Aloita Noden kehittäminen tutustumalla hänen Node.js-opetusohjelmaansa.

MEAN-pinon edut ja edut 

Nämä neljä komponenttia, jotka työskentelevät rinnakkain, eivät ole ratkaisu kaikkiin ongelmiin, mutta ne ovat ehdottomasti löytäneet kapealla nykyaikaisessa kehityksessä. IBM jakaa alueet, joilla MEAN-pino sopii laskuun. Koska se on skaalautuva ja pystyy käsittelemään suurta määrää käyttäjiä samanaikaisesti, MEAN-pino on erityisen hyvä valinta pilvipohjaisiin sovelluksiin. Kulmainen etupää on myös loistava valinta yhden sivun sovelluksiin. Esimerkkejä ovat:

  • Kulujen seurantasovellukset
  • Uutisten koontisivustot
  • Kartoitus- ja sijaintisovellukset

TÄRKEYS vs. MERN

Lyhennettä "MERN" käytetään joskus kuvaamaan MEAN-pinoja, jotka käyttävät React.js: ää Angularin sijasta. React on kehys, ei täysimittainen kirjasto, kuten Angular, ja Reactin vaihtamiseen JavaScript-pohjaiseen pinoon on etuja. Lyhyesti sanottuna React on helpompi oppia, ja useimmat kehittäjät voivat kirjoittaa ja testata React-koodia nopeammin kuin he voivat kirjoittaa ja testata täysimittaista Angular-sovellusta. React tuottaa myös paremman liikkuvan etupään. Toisaalta kulmakoodi on vakaampi, puhtaampi ja suorituskykyisempi. Yleensä Angular on valinta yritystason kehitykseen.

Mutta se tosiasia, että tämä valinta on käytettävissäsi, osoittaa, että MEAN ei ole rajoitettu paketti kehittäjille. Paitsi että voit vaihtaa eri komponentit yhteen kanonisesta neljästä kerroksesta; voit lisätä myös täydentäviä komponentteja. Esimerkiksi välimuistijärjestelmiä, kuten Redis tai Memcached, voitaisiin käyttää Expressissä nopeuttamaan vastauksia pyyntöihin.

MEAN-pinon kehittäjät

MeAN-taitojen oleminen MEAN-pino-kehittäjänä merkitsee lähtökohtaisesti täyden pinon kehittäjäksi keskittymistä erityisesti tässä käsittelemiemme JavaScript-työkaluihin. MEAN-pinon suosio tarkoittaa kuitenkin sitä, että monet työpaikkailmoitukset on suunnattu täyspanos-kehittäjille, joilla on MEAN-erityisiä taitoja. Guru99 hajottaa yhden näistä töistä tarttumisen edellytykset. MEAN-pinon peruskomponenttien tuntemisen lisäksi MEAN-pino-kehittäjällä tulisi olla hyvä käsitys:

  • Etu- ja taustaprosessit
  • HTML ja CSS
  • Ohjelmointimallit ja arkkitehtuurin suunnitteluohjeet
  • Verkkokehitys, jatkuva integrointi ja pilvitekniikat
  • Tietokannan arkkitehtuuri
  • Ohjelmistokehityksen elinkaari (SDLC) ja millaista on kehittyä ketterässä ympäristössä

Mikä on MEAN-pino-kehittäjän palkka? Vaikka valikoima on aina kokemukseen ja työnantajaan perustuva, se on ehdottomasti tuottoisa ala. Joulukuussa 2019 Neuvoo.com sanoo, että mediaanipalkka, jonka MEAN-pino-kehittäjä voi odottaa olevan noin 125000 dollaria vuodessa. Indeed.com kokoaa MEAN-pino-kehittäjät täyspino-kehittäjillä yleisemmin ja kiinnittää tyypillisen vuosipalkan noin 112 000 dollariin.

MEAN-pino-oppaat

Oletko tyytyväinen teknisiin perusteisiin ja oletko valmis sukeltamaan sisään ja oppimaan MEAN-pinon? Siellä on useita ilmaisia ​​opetusohjelmia, joiden avulla pääset alkuun. Kulmamallit-sivustolla on erityisen perusteellinen opetusohjelma, joka opastaa yksinkertaisen verkkosivuston rakentamisessa MEAN-pinoa käyttämällä. TutorialsPointilla on hyvä opas yhden sivun verkkosovelluksen luomiseen MEAN-pinon avulla. Nauti käsien likaantumisesta ja onnea!

$config[zx-auto] not found$config[zx-overlay] not found