ZNAČITE nasuprot LAMPI za vaš sljedeći projektni projekt

Prijelaz s vrhunske znatiželje na praktični radni konj nije ono što čine mnoge tehnologije. Jučerašnji prijevremeni početnici često ne ispunjavaju svoja obećanja u verziji 0.1. Nije tako za tehnologije koje čine žestoko skraćeni MEAN stog.

Prije samo nekoliko godina MongoDB, Express.js, AngularJS i Node.js samostalno su podizali obrve. Sada su odrasli i postali gang, i zajedno rade ozbiljan posao, krivovjereći nemali broj programera iz ogromnog kampa LAMP. Ali kako se ta novopečena ZNAČENJA točno slažu s LAMPOM? Kada je bolje odabrati dobro testirani, zreli LAMP umjesto ove vrhunske kolekcije tehnologija usmjerenih na JavaScript?

Odgovor je kada vam jednostavnost i uobičajena struktura olakšaju život. MongoDB nudi fleksibilniji sloj za prilagodbu za pohranu podataka. Node.js pruža bolju vezu za pokretanje vašeg poslužitelja, dok Express pomaže u standardiziranju načina izrade web stranica. Na klijentu, Angular pruža čist način dodavanja interaktivnih funkcija i bogatih komponenata vođenih AJAX-om. Sastavite ih sve i oni čine čisti, koherentni mehanizam za premještanje podataka s korisnika na farmu diskova i natrag.

Pravo je objašnjenje, međutim, dublje. Ovdje nudimo devet razloga da MEAN pokušate s vašim sljedećim projektom. Nema svatko vremena ili proračuna za izbacivanje i prekodiranje starog u najnovijem, najmodernijem okviru, niti biste trebali odbaciti čvrstu pouzdanost alata provjerenih u bitkama kao što su Apache, MySQL ili PHP. Ali za projekte na terenu koji bi mogli imati koristi od fleksibilnosti, jednostavnosti i izvedbe, ako MEAN znači da će vam život učiniti boljim nego što mislite.

MongoDB je napravljen za oblak

Ako vaši planovi web aplikacija uključuju ispunjavanje obećanja o novcu po centu po CPU-u, skup MEAN nudi uvjerljiv sloj baze podataka u MongoDB-u. Ova moderna baza podataka isporučuje se s automatskim oštrenjem i potpunom podrškom za klastere, odmah iz kutije. Priključite MongoDB i on se širi po vašoj grupi poslužitelja kako bi pružio podršku za odbijanje i automatsku replikaciju. S obzirom na lakoću s kojom se aplikacije mogu razvijati, testirati i hostirati u oblaku, malo je razloga da ne razmotrite MongoDB za svoj sljedeći projekt.

Struktura MySQL-a ograničava 

Svatko tko je razvio ili održavao aplikaciju zasnovanu na LAMP-u bilo koje vrijeme, zna da snaga MySQL-a kao relacijske baze podataka ponekad može biti malo zatvorena. Kao i sve relacijske baze podataka, MySQL vas prisiljava da svoje podatke gurate u tablice. To nije problem ako se svaki pojedini unos uklapa u potpuno isti format, ali koliko je često svijet tako velikodušan? Što ako dvije osobe dijele istu adresu, ali ne i isti račun? Što ako želite imati tri retka do adrese umjesto dva? Tko nije pokušao popraviti relacijsku bazu podataka tako što je previše podataka stavio u jedan stupac? Inače na kraju dodate još jedan stupac, a tablica raste bez ograničenja.

MongoDB, s druge strane, nudi strukturu dokumenata koja je daleko fleksibilnija. Želite li dodati novi dio osobnih podataka u svoje korisničke profile? Jednostavno dodajte polje svom obrascu, zamotajte ga s ostatkom podataka u JSON dokument i ugurajte ga u svoju MongoDB kolekciju. To je izvrsno za fluktuirajuće projekte i za bavljenje podacima koji se u konačnici mogu pokazati zahtjevnim za ograničavanje u obliku tablice.

Prostor na disku je jeftin

Među velikim otkrićima relacijskih baza podataka bila je naredba JOIN. Pomoću JOIN mogli bismo uštedjeti prostor na disku uklanjanjem opetovanih polja kao što su grad, država i poštanski broj. Pohranjujući ove često pristupane i ponavljane podatke u zasebne tablice koje se mogu pridružiti budućim rezultatima putem PRIDRUŽIVANJA, održavamo našu bazu urednom, a diskove tankim.

No, PRIDRUŽIVANJA mogu biti nezgodna za neke i naporna na RAM-u, i premda je i dalje dobra ideja izolirati podatke i pristupiti im u zasebnim tablicama putem PRIDRUŽIVANJA, nema toliko potrebe za uštedom prostora na disku sada kada se pogoni diskova mjere u više terabajta. Prostor je toliko jeftin da neki dizajneri baza podataka na kraju denormaliziraju svoje podatke jer su PRIDRUŽIVANJA prespora. Jednom kada to učinite, ne treba vam toliko relacijska baza podataka. Zašto umjesto toga ne koristiti MongoDB?

Node.js pojednostavljuje poslužiteljski sloj

Kretanje raznim slojevima LAMP stoga može biti težak ples mnogih šešira, onaj koji vas provlači kroz razne konfiguracijske datoteke s različitim sintaksama. MEAN to pojednostavljuje upotrebom Node.js.

Želite li promijeniti način na koji aplikacija zahtijeva rute? Ulijte malo JavaScripta i pustite Node.js da učini sve ostalo. Želite li promijeniti logiku koja se koristi za odgovaranje na upite? Koristite i tamo JavaScript. Ako želite prepisati URL-ove ili izraditi neobično mapiranje, to je također u JavaScript-u. Oslanjanje stoga MEAN na Node.js stavilo je ovu vrstu cijevovoda na jedno mjesto, na jednom jeziku, na jednoj hrpi logike. Ne trebate ponovno čitati upute za PHP, Apache i sve ostalo što dodate u stog. Iako generacija LAMP ima različite konfiguracijske datoteke za sve, Node.js u potpunosti izbjegava taj problem. Imati sve u jednom sloju znači manje zabune i manje šanse za čudne greške stvorene čudnim interakcijama između više slojeva.

MEAN čini kod izomorfnim

Jednostavnost se ne zaustavlja s upotrebom JavaScript-a na poslužitelju. Ako pređete na MEAN, možete uživati ​​u tom istom JavaScript-u i na klijentu, ostavljajući za sobom shizofreniju klijenta / poslužitelja LAMP stoga. Ako napišete kôd za Node i odlučite da ga je bolje smjestiti u Angular, možete ga premjestiti s lakoćom i gotovo je sigurno da će se izvoditi na isti način. Ova fleksibilnost znatno olakšava programiranje MEAN-based aplikacija. Osim toga, ako zapošljavate projekt, ne trebate tražiti stručnjaka za PHP i JavaScript, ili stručnjaka za front-end i back-end. Umjesto toga, sve je to JavaScript u cijeloj hrpi.

JSON posvuda

Angular i MongoDB govore JSON, kao i Node.js i Express. Podaci uredno prolaze između svih slojeva bez prepisivanja ili preoblikovanja. Izvorni format MySQL-a za odgovaranje na upite je, u potpunosti, svoj. Da, PHP već ima kôd za uvoz MySQL podataka i olakšavanje obrade u PHP-u, ali to ne pomaže klijentskom sloju. Ovo bi moglo biti pomalo malo za iskusne veterane LAMP-a jer postoji toliko dobro provjerenih knjižnica koje lako pretvaraju podatke, ali sve se čini pomalo neučinkovito i zbunjujuće. MEAN svugdje koristi isti JSON format za podatke, što ih čini jednostavnijim i štedi vrijeme ponovnog formatiranja dok prolazi kroz svaki sloj. Osim toga, JSON-ova sveprisutnost kroz MEAN stog čini rad s vanjskim API-ima mnogo lakšim: GET, manipulirajte, prezentirajte, OBJAVITE i pohranite sve u jednom formatu.

Node.js je superbrz

Apache je bio sjajan, ali danas je Node.js često brži. Broj mjerila pokazuje da Node.js nudi bolje performanse, a pritom radi puno više. Možda je to starost koda. Možda je arhitektura vođena događajima Node.js brža. Nema veze. Ovih dana, posebno među nestrpljivim korisnicima mobilnih uređaja, važno je brijanje čak i milisekundi performansi vaše aplikacije, a Node.js to može učiniti, dok nudi Turingov cjeloviti mehanizam za njeno ponovno programiranje.

Dubina je bitna

Ljubitelji PHP-a vole se držati sjajnih knjižnica koda koje su stvorene za dominantne platforme poput WordPressa ili Drupala. Imaju dobrih razloga za ponos, ali njihove prednosti ispadaju dok Node.js sustiže.

Upravitelj paketa Node.js, NPM, olakšava dijeljenje koda, a javna spremišta koja ciljaju Node.js brzo rastu. Iako bi PHP gužva mogla voditi u ovom trenutku, budućnost će možda pogodovati Node.js. Osim toga, trenutačni se dužnici često pokazuju krhki u susret promjenjivim trendovima. Svaki pokušaj modernizacije ukorijenjene platforme poput Drupala novom verzijom znači da mnogo više programera možda dopušta da im pogled odluta prema novijim, spretnijim platformama izgrađenim oko Node.js.

Kutni je svjež

Nije baš pošteno uspoređivati ​​"A" u "MEAN" s bilo čime u stogu LAMP, jer LAMP ne uključuje analog. Ako želite učiniti bilo što na strani klijenta, vi ste sami. Svakako, postoji puno dobrih PHP-baziranih okvira koji rade s MySQL-om, ali svaki je malo drugačiji i kreće se u svom smjeru. Na primjer, WordPress, Joomla i Drupal nude različite strategije i teško je prebacivati ​​se između njih, a kamoli prenijeti kôd s jednog na drugi. Pomazanje jednog klijentskog okvira dodaje dosljednost i stabilnost.

Također pomaže što su Angular izgradili ljudi s 20 godina iskustva u izradi web aplikacija. Znali su dovoljno dobro da posao prevođenja prepuste HTML-u i CSS-u. Također su smislili kako dodati malo JavaScript-a za skeniranje HTML-a. Dizajneri tvrtke Angular pogledali su što ljudi dobro rade, a zatim su skrojili JavaScript kako bi podržao ljude. Sustav za predloške i logički slojevi dramatično su čišći od onoga što smo vidjeli prije, dijelom i zato što je tim smislio jednostavnije načine kako iskoristiti lokalnu snagu JavaScript-a da pogodi što radite.

Pomiješajte i podudarajte

Naravno, ako ste stvarno izbirljivi, nema razloga zašto to ne biste mogli malo pomiješati. Mnogo programera koristi MongoDB s Apacheom i PHP-om, a drugi radije koriste MySQL s Node.js. Angular prilično dobro funkcionira s bilo kojim poslužiteljem, čak i onim koji pokreće PHP za isporuku podataka iz MySQL-a. Ne morate biti robovi skraćenica.