Programiranje

Kaj je sklad MEAN? Spletne aplikacije JavaScript

Sklad MEAN, definiran

Sklop MEAN je sklop programske opreme, to je nabor tehnoloških slojev, ki tvorijo sodobno aplikacijo, ki je v celoti zgrajen v JavaScript. MEAN predstavlja prihod JavaScripta kot jezika za "razvoj celotnega sklada", ki v aplikaciji izvaja vse od sprednjega do zadnjega dela. Vsaka začetnica v MEAN pomeni komponento v nizu:

  • MongoDB: Strežnik baz podatkov, za katerega se poizveduje z uporabo JSON (JavaScript Object Notation) in ki hrani podatkovne strukture v binarni obliki JSON
  • Express: Okvir JavaScript na strani strežnika
  • Kotni: Okvir JavaScript na strani odjemalca
  • Node.js: Izvajanje JavaScript

Velik del pritožbe MEAN je doslednost, ki izhaja iz dejstva, da je JavaScript skozi in skozi. Življenje je za razvijalce enostavnejše, ker je vsaka komponenta aplikacije - od predmetov v zbirki podatkov do odjemalske kode - napisana v istem jeziku.

Ta doslednost je v nasprotju s mešanico LAMP, dolgoletne rešitve razvijalcev spletnih aplikacij. Tako kot MEAN je tudi LAMP kratica za komponente, uporabljene v kupu - Linux, strežnik Apache HTTP, MySQL in PHP, Perl ali Python. Vsak kos sklada ima malo skupnega s katerim koli drugim delom.

To ne pomeni, da je sklad LAMP slabši. Še vedno se pogosto uporablja in vsak element v nizu še vedno koristi aktivno razvojno skupnost. Toda konceptualna skladnost, ki jo zagotavlja MEAN, je dobro. Če uporabljate isti jezik in več istih jezikovnih konceptov na vseh ravneh sklada, razvijalec lažje obvlada celoten kup naenkrat.

Večina skladov MEAN vsebuje vse štiri komponente - bazo podatkov, sprednji del, zadnji del in izvršilni mehanizem. To ne pomeni, da je sklad sestavljen iz samo ti elementi, toda tvorijo jedro.

MongoDB

Tako kot drugi sistemi baz podatkov NoSQL tudi MongoDB uporablja zasnovo brez sheme. Podatki se shranijo in pridobijo kot dokumenti v obliki JSON, ki imajo lahko poljubno število ugnezdenih polj. Zaradi te prilagodljivosti je MongoDB zelo primeren za hiter razvoj aplikacij pri obravnavi hitro spreminjajočih se zahtev.

Uporaba MongoDB vključuje številna opozorila. Prvič, MongoDB slovi kot privzeto negotov. Če ga namestite v produkcijsko okolje, ga morate zaščititi. Za razvijalce, ki prihajajo iz relacijskih baz podatkov ali celo drugih sistemov NoSQL, boste morali nekaj časa nameniti spoznavanju MongoDB in njegovega delovanja. Martin Heller se je v mnenju poglobil v MongoDB 4, kjer govori o notranjih elementih MongoDB, poizvedbah in pomanjkljivostih.

Kot pri kateri koli drugi rešitvi zbirke podatkov boste tudi za komunikacijo med MongoDB in komponentami JavaScript potrebovali nekakšno vmesno programsko opremo. Ena pogosta izbira za sklad MEAN je Mongoose. Mongoose ne zagotavlja samo povezljivosti, temveč modeliranje objektov, preverjanje veljavnosti na strani aplikacije in številne druge funkcije, za katere ne želite, da vas motijo ​​znova za vsak nov projekt.

Express.js

Express je verjetno najpogosteje uporabljen okvir spletnih aplikacij za Node.js. Express ponuja le majhen nabor bistvenih funkcij - v bistvu gre za minimalen, programljiv spletni strežnik -, vendar ga je mogoče razširiti z vtičniki. Ta brezhiben dizajn pomaga, da je Express lahek in zmogljiv.

Nič ne govori, da je treba aplikacijo MEAN uporabnikom ponuditi neposredno prek Expressa, čeprav je to zagotovo pogost scenarij. Alternativna arhitektura je namestitev drugega spletnega strežnika, kot sta Nginx ali Apache, pred Expressom kot povratni proxy. To omogoča, da se funkcije, kot je uravnoteženje obremenitve, razložijo v ločen vir.

Ker je Express namerno minimalen, z njim ni povezanih veliko konceptualnih stroškov. Vadnice na Expressjs.com vas lahko popeljejo od hitrega pregleda osnov do povezovanja baz podatkov in še več.

Kotna

Angular (prej AngularJS) se uporablja za izdelavo sprednjega dela aplikacije MEAN. Angular uporablja brskalnikov JavaScript za formatiranje podatkov, ki jih posreduje strežnik, v predlogah HTML, tako da lahko velik del upodabljanja spletne strani razbremeni odjemalca. Številne spletne strani z eno stranjo so zgrajene z uporabo programa Angular na sprednjem delu.

Eno pomembno opozorilo: razvijalci sodelujejo s programom Angular tako, da pišejo v TypeScript, vtipkanem jeziku, podobnem JavaScriptu, ki se prevede v JavaScript. Za nekatere ljudi je to kršitev enega glavnih konceptov sklada MEAN - da se JavaScript uporablja povsod in izključno. Vendar je TypeScript bratranec JavaScript, zato prehod med njima ni tako moteč, kot bi lahko bil pri drugih jezikih.

Martin Heller vas je pokril za globok potop v Angular. V svoji vadnici za Angular vas bo popeljal do ustvarjanja sodobne spletne aplikacije Angular.

Node.js

Nenazadnje je tu še Node.js - izvajalno okolje JavaScript, ki poganja strežniško stran spletne aplikacije MEAN. Node temelji na Googlovem mehanizmu JavaScript V8 JavaScript, istem mehanizmu JavaScript, ki deluje v spletnem brskalniku Chrome. Vozlišče je večplastno, deluje tako na strežnikih kot na odjemalcih in ima določene prednosti glede zmogljivosti pred tradicionalnimi spletnimi strežniki, kot je Apache.

Node.js ima drugačen pristop k vročanju spletnih zahtev kot tradicionalni spletni strežniki. V tradicionalnem pristopu strežnik ustvari novo nit izvajanja ali celo oblikuje nov postopek za obdelavo zahteve. Drstenje niti je učinkovitejše od vilic, vendar oboje vključuje veliko stroškov. Veliko število niti lahko povzroči, da močno obremenjen sistem porabi dragocene cikle za razporejanje niti in preklapljanje konteksta, dodaja zakasnitev in omejuje razširljivost in prepustnost.

Node.js je veliko bolj učinkovit. Vozlišče zažene enonitno zanko dogodka, registrirano v sistemu za obdelavo povezav, vsaka nova povezava pa sproži funkcijo povratnega klica JavaScript. Funkcija povratnega klica lahko obravnava zahteve z neblokirajočimi V / I klici in po potrebi lahko ustvari niti iz področja za izvajanje blokadnih ali CPU-intenzivnih operacij in za uravnoteženje obremenitve med jedri CPU.

Node.js zahteva manj pomnilnika za obdelavo več povezav kot večina konkurenčnih arhitektur, ki se spreminjajo z nitmi - vključno s strežnikom Apache HTTP, ASP.NET, Ruby on Rails in Java strežniki. Tako je Node postal izjemno priljubljena izbira za izdelavo spletnih strežnikov, API-jev REST in aplikacij v realnem času, kot so aplikacije za klepet in igre. Če obstaja ena komponenta, ki definira sklad MEAN, je to Node.js.

Za uvod v Node.js glejte razlago Martina Hellerja. Če želite začeti razvijati Node, si oglejte njegovo vadnico Node.js.

Prednosti in prednosti sklada MEAN 

Te štiri komponente, ki delujejo v tandemu, niso rešitev za vsak problem, vendar so v sodobnem razvoju zagotovo našle nišo. IBM razčleni področja, kjer sklad MEAN ustreza računu. Ker je prilagodljiv in lahko istočasno obravnava večje število uporabnikov, je sklad MEAN še posebej dobra izbira za aplikacije, ki so izvorne v oblaku. Kotni sprednji del je tudi odlična izbira za aplikacije na eni strani. Primeri vključujejo:

  • Aplikacije za sledenje stroškov
  • Spletna mesta za združevanje novic
  • Aplikacije za preslikavo in lokacijo

SREDSTVO v primerjavi z MERN

Kratica "MERN" se včasih uporablja za opis skladov MEAN, ki namesto Angular uporabljajo React.js. React je ogrodje, ne pa polnopravna knjižnica, kot je Angular, in zamenjava React-a v sklad, ki temelji na JavaScript-u, ima pluse in minuse. Na kratko, React se je lažje učiti in večina razvijalcev lahko hitreje piše in preizkuša kodo React, kot pa polnopravno aplikacijo Angular. React omogoča tudi boljše mobilne sprednje konce. Po drugi strani pa je kotna koda stabilnejša, čistejša in zmogljivejša. Na splošno je Angular izbira za razvoj v podjetniškem razredu.

Toda dejstvo, da vam je na voljo ta izbira, dokazuje, da MEAN ni omejena tesna jakna za razvijalce. Ne samo, da lahko različne komponente zamenjate za eno od kanoničnih štirih plasti; lahko dodate tudi dopolnilne komponente. Na primer, sisteme za predpomnjenje, kot sta Redis ali Memcached, je mogoče uporabiti v Expressu za pospešitev odzivov na zahteve.

MEAN razvijalci skladov

Imeti znanje razvijalca skladov MEAN v bistvu pomeni postati razvijalec celotnega sklada s poudarkom na določenem naboru orodij JavaScript, o katerih smo razpravljali tukaj. Vendar priljubljenost sklada MEAN pomeni, da bodo številni oglasi za zaposlitev usmerjeni na razvijalce s polnim skladom z znanji, specifičnimi za MEAN. Guru99 razčlenjuje pogoje za zatikanje enega od teh delovnih mest. Poleg poznavanja osnovnih komponent sklada MEAN bi moral razvijalec sklada MEAN dobro razumeti:

  • Front-end in back-end procesi
  • HTML in CSS
  • Predloge za programiranje in smernice za oblikovanje arhitekture
  • Spletni razvoj, nenehna integracija in tehnologije v oblaku
  • Arhitektura zbirke podatkov
  • Življenjski cikel razvoja programske opreme (SDLC) in kako je to razvijati se v gibčnem okolju

Kakšna je plača razvijalca sklada MEAN? Čeprav vedno obstaja vrsta, ki temelji na izkušnjah in delodajalcu, je to vsekakor donosno področje. Od decembra 2019 Neuvoo.com pravi, da je povprečna plača, ki jo lahko pričakuje razvijalec skladov MEAN, približno 125.000 USD na leto. Dejansko.com razvijalce skladov MEAN na splošno napolni s celotnim nizom programov in običajno letno plačo določi na približno 112.000 USD.

POMENI vaje za sklad

Vam ustrezajo tehnične osnove in ste pripravljeni, da se potopite in se naučite sklada MEAN? Obstajajo številne brezplačne vaje, s katerimi lahko začnete. Spletna stran Angular Templates ima še posebej temeljito vadnico, ki vas vodi skozi postopek izdelave preprostega spletnega mesta s pomočjo sklada MEAN. TutorialsPoint ima dober vodnik za izdelavo enostranske spletne aplikacije s skladom MEAN. Uživajte v umazanih rokah in veliko sreče!

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