Što je MEAN stog? JavaScript web aplikacije

Sredstvo MEAN, definirano

MEAN stog je softverski stog - odnosno skup tehnoloških slojeva koji čine modernu aplikaciju - koji je u potpunosti izgrađen u JavaScript-u. MEAN predstavlja dolazak JavaScripta kao jezika za "razvoj punog sloga", koji pokreće sve u aplikaciji od prednjeg do stražnjeg dijela. Svaki od inicijala u MEAN znači komponentu u hrpi:

  • MongoDB: Poslužitelj baze podataka koji se traži pomoću JSON-a (JavaScript Object Notation) i koji pohranjuje podatkovne strukture u binarnom JSON formatu
  • Express: Okvir JavaScript na strani poslužitelja
  • Angular: JavaScript okvir na strani klijenta
  • Node.js: JavaScript runtime

Veliki dio MEAN-ove privlačnosti jest dosljednost koja proizlazi iz činjenice da je to JavaScript i kroz njega. Život je jednostavniji za programere jer je svaka komponenta aplikacije - od objekata u bazi podataka do koda na strani klijenta - napisana na istom jeziku. 

Ova dosljednost suprotstavlja se pupoljcima LAMP-a, dugogodišnje glavne verzije programera web aplikacija. Poput MEAN, LAMP je kratica za komponente korištene u stogu - Linux, Apache HTTP poslužitelj, MySQL i PHP, Perl ili Python. Svaki komad hrpe ima malo zajedničkog s bilo kojim drugim dijelom. 

To ne znači da je LAMP stog inferioran. I dalje se široko koristi, a svaki element u hrpi i dalje ima koristi od aktivne razvojne zajednice. Ali konceptualna dosljednost koju MEAN pruža je blagodat. Ako upotrebljavate isti jezik i mnoge iste jezične koncepte na svim razinama stoga, programeru postaje lakše svladati cijeli stog odjednom.

Većina MEAN stogova sadrži sve četiri komponente - bazu podataka, prednji kraj, stražnji kraj i izvršni mehanizam. To ne znači da se stog sastoji samo od ovih elemenata, ali oni čine jezgru.

MongoDB

Kao i drugi NoSQL sustavi baza podataka, MongoDB koristi dizajn bez sheme. Podaci se pohranjuju i preuzimaju kao dokumenti u formatu JSON, koji mogu imati bilo koji broj ugniježđenih polja. Ova fleksibilnost čini MongoDB pogodnim za brzi razvoj aplikacija kada se suočava sa zahtjevima koji se brzo mijenjaju.

Korištenje MongoDB-a dolazi s nizom upozorenja. Kao prvo, MongoDB ima reputaciju da je prema zadanim postavkama nesiguran. Ako ga rasporedite u proizvodno okruženje, morate poduzeti korake za njegovo osiguranje. A za programere koji dolaze iz relacijskih baza podataka ili čak drugih NoSQL sustava, morat ćete potrošiti neko vrijeme na upoznavanje MongoDB-a i kako to radi. Martin Heller zaronio je duboko u pregled MongoDB 4 u svojoj recenziji, gdje govori o MongoDB internim elementima, upitima i nedostacima.

Kao i za svako drugo rješenje baze podataka, za komunikaciju između MongoDB-a i JavaScript komponenata trebat će vam neka vrsta međuopreme. Jedan od uobičajenih izbora za stopu MEAN je Mongoose. Mongoose ne pruža samo povezivost, već modeliranje objekata, provjeru valjanosti na strani aplikacije i brojne druge funkcije koje ne želite da vas muči ponovno izmišljanje za svaki novi projekt.

Express.js 

Express je vjerojatno najkorišteniji okvir web aplikacija za Node.js. Express nudi samo mali skup bitnih značajki - u osnovi je to minimalan, programabilan web poslužitelj - ali se može proširiti putem dodataka. Ovaj dizajn bez napora pomaže održati Express laganim i izvedbenim.

Ništa ne kaže da se MEAN aplikacija mora posluživati ​​izravno korisnicima putem Expressa, iako je to sigurno uobičajeni scenarij. Alternativna arhitektura je postavljanje drugog web poslužitelja, poput Nginxa ili Apachea, ispred Expressa kao obrnutog proxyja. To omogućuje da se funkcije poput uravnoteženja opterećenja preuzmu u zasebni resurs.

Budući da je Express namjerno minimalan, nije povezan s mnogo konceptualnih troškova. Vodiči na Expressjs.com mogu vas odvesti od brzog pregleda osnova do povezivanja baza podataka i šire.

Kutni

Angular (nekada AngularJS) koristi se za izradu prednjeg kraja za MEAN aplikaciju. Angular koristi JavaScript preglednika za oblikovanje podataka koje pruža poslužitelj u HTML predlošcima, tako da se velik dio prikazivanja web stranice može prenijeti na klijenta. Mnoge web stranice s jednom stranicom izrađene su pomoću Angulala na prednjem kraju.

Jedno važno upozorenje: programeri rade s Angulom pisanjem u TypeScriptu, tipiziranom jeziku sličnom JavaScriptu koji se kompajlira u JavaScript. Za neke ljude ovo predstavlja kršenje jednog od glavnih koncepata MEAN stoga - da se JavaScript koristi svugdje i isključivo. Međutim, TypeScript je bliski rođak JavaScript-a, tako da prijelaz između njih nije toliko nespretan kao što bi mogao biti s drugim jezicima.

Martin Heller vas je pokrio za duboko ronjenje u Angulu. U svom vodiču za Angular provest će vas kroz stvaranje moderne web stranice Angular.

Node.js 

Posljednje, ali najmanje važno, postoji Node.js - JavaScript vrijeme izvođenja koje pokreće poslužiteljsku stranicu MEAN web aplikacije. Čvor se temelji na Googleovom V8 JavaScript mehanizmu, istom onom JavaScript mehanizmu koji radi u Chrome web pregledniku. Node je višeplatformski, radi i na poslužiteljima i na klijentima i ima određene prednosti u izvedbi u odnosu na tradicionalne web poslužitelje poput Apachea. 

Node.js ima drugačiji pristup posluživanju web zahtjeva nego tradicionalni web poslužitelji. U tradicionalnom pristupu, poslužitelj stvara novu nit izvršenja ili čak oblikuje novi postupak za obradu zahtjeva. Mresti niti su učinkovitiji od procesa rašljarenja, ali oba uključuju dosta troškova. Veliki broj niti može uzrokovati da jako opterećeni sustav troši dragocjene cikluse na planiranje niti i prebacivanje konteksta, dodajući kašnjenje i namećući ograničenja skalabilnosti i propusnosti. 

Node.js je daleko učinkovitiji. Čvor pokreće jednonitnu petlju događaja registriranu u sustavu za rukovanje vezama, a svaka nova veza pokreće funkciju JavaScript povratnog poziva. Funkcija povratnog poziva može obrađivati ​​zahtjeve s neblokirajućim I / O pozivima i, ako je potrebno, može izraditi niti iz spremišta za izvršavanje blokadnih ili CPU intenzivnih operacija i za uravnoteženje opterećenja na CPU jezgrama.

Node.js zahtijeva manje memorije za obradu više veza od većine konkurentnih arhitektura koje se skaliraju nitima, uključujući Apache HTTP poslužitelj, ASP.NET, Ruby on Rails i Java aplikacijske poslužitelje. Stoga je Node postao izuzetno popularan izbor za izgradnju web poslužitelja, REST API-ja i aplikacija u stvarnom vremenu poput chat aplikacija i igara. Ako postoji jedna komponenta koja definira MEAN stog, to je Node.js. 

Uvod u Node.js potražite u objašnjenju Martina Hellera. Da biste započeli razvoj s Nodeom, pogledajte njegov vodič za Node.js. 

Prednosti i prednosti stoga MEAN 

Ove četiri komponente koje rade u tandemu nisu rješenje za svaki problem, ali definitivno su pronašle nišu u suvremenom razvoju. IBM razgrađuje područja na kojima MEAN stog odgovara računu. Budući da je skalabilan i može istodobno rukovati velikim brojem korisnika, skup MEAN posebno je dobar izbor za nativne aplikacije u oblaku. Kutni prednji kraj također je izvrstan izbor za aplikacije na jednoj stranici. Primjeri uključuju:

  • Aplikacije za praćenje troškova
  • Web stranice za prikupljanje vijesti
  • Aplikacije za mapiranje i lokaciju

ZNAČI naspram MERN

Kratica "MERN" ponekad se koristi za opisivanje MEAN stogova koji koriste React.js umjesto Angular. React je okvir, a ne punopravna knjižnica poput Angular-a, a ima i plusa i minusa za zamjenu React-a u stogu temeljenom na JavaScript-u. Ukratko, React je lakše naučiti, a većina programera može pisati i testirati React kôd brže nego što može pisati i testirati punopravnu Angular aplikaciju. React također stvara bolje mobilne prednje krajeve. S druge strane, kutni kôd stabilniji je, čišći i učinkovitiji. Općenito, Angular je izbor za razvoj klase poduzeća.

Ali sama činjenica da vam je ovaj izbor dostupan pokazuje da MEAN nije ograničena luđačka košulja za programere. Ne samo da možete zamijeniti različite komponente za jedan od četiri kanonska sloja; možete dodati i komplementarne komponente. Na primjer, sustavi za predmemoriranje kao što su Redis ili Memcached mogli bi se koristiti unutar Expressa za ubrzavanje odgovora na zahtjeve.

ZNAČI programeri stoga

Imati vještine da budete MEAN programer steka u osnovi podrazumijeva postajanje programera s punim stekom, s naglaskom na određeni skup JavaScript alata o kojima smo ovdje razgovarali. Međutim, popularnost MEAN stoga znači da će mnogi oglasi za posao biti usmjereni na full-stack programere sa MEAN specifičnim vještinama. Guru99 razbija preduvjete za hvatanje jednog od ovih poslova. Osim upoznavanja s osnovnim komponentama MEAN steka, programer MEAN steka trebao bi dobro razumjeti i:

  • Front-end i back-end procesi
  • HTML i CSS
  • Predlošci za programiranje i smjernice za dizajn arhitekture
  • Web razvoj, kontinuirana integracija i tehnologije u oblaku
  • Arhitektura baze podataka
  • Životni ciklus razvoja softvera (SDLC) i kako je to razvijati se u agilnom okruženju

Kolika je MEAN-ova plaća programera? Iako uvijek postoji niz koji se temelji na iskustvu i poslodavcu, to je definitivno unosno područje. Od prosinca 2019., Neuvoo.com kaže da je srednja plaća koju MEAN programer slogova može očekivati ​​oko 125 000 USD godišnje. Doista.com grupiše MEAN programere stogova s ​​razvojnim programerima s punim hrpama i općenito određuje tipičnu godišnju plaću od oko 112.000 USD.

ZNAČI tutoriali za stog

Jeste li zadovoljni tehničkim osnovama i spremni ste zaroniti i naučiti MEAN stog? Postoji niz besplatnih vodiča koji vam mogu pomoći. Web stranica Angular Templates ima posebno temeljit vodič koji vas vodi kroz postupak izrade jednostavne web stranice pomoću stoga MEAN. TutorialsPoint ima dobar vodič za izradu web stranice s jednom stranicom s MEAN stogom. Uživajte u zaprljanju ruku i sretno!