Programiranje

MEAN vs. LAMP za vaš naslednji programski projekt

Številne tehnologije ne prehajajo z vrhunske radovednosti na praktičnega delovnega konja. Včerajšnji prezgodnji začetki pogosto ne izpolnijo svoje obljube različice 0.1. Za tehnologije, ki tvorijo močno akronimizirani sklad MEAN, ni tako.

Šele pred nekaj leti so MongoDB, Express.js, AngularJS in Node.js sami dvigovali obrvi. Zdaj so odrasli in zrasli ter skupaj opravljajo resno delo in lovijo nemalo razvijalcev iz prostranega kampa LAMP. Toda kako natančno se ta novonastali POMEN postavlja proti LAMP-u? Kdaj je bolje izbrati dobro preizkušen, zrel LAMP pred to izjemno zbirko tehnologij, osredotočenih na JavaScript?

Odgovor je, ko vam preprostost in skupna zgradba olajšata življenje. MongoDB ponuja bolj prilagodljiv, prilagodljiv sloj za shranjevanje podatkov. Node.js zagotavlja boljši povezavi za zagon vašega strežnika, medtem ko Express pomaga pri standardizaciji izdelave spletnih mest. Angular nudi odjemalcu čist način dodajanja interaktivnih funkcij in bogatih komponent, ki jih poganja AJAX. Vse jih združite in ustvarijo čist, skladen mehanizem za premikanje podatkov od uporabnika do diskovne farme in nazaj.

Prava razlaga pa je globlja. Tu ponujamo devet razlogov, da MEAN poskusite s svojim naslednjim projektom. Nihče nima časa ali proračuna, da bi iztisnil in prekodiral staro v najnovejšem, najbolj trendovskem okviru, niti ne bi smel zavreči trdne zanesljivosti preizkušenih orodij, kot so Apache, MySQL ali PHP. Toda pri zelenih projektih, ki bi jim lahko koristila prilagodljivost, preprostost in zmogljivost, vam bo MEAN morda izboljšal življenje, kot si mislite.

MongoDB je narejen za oblak

Če vaši načrti za spletno aplikacijo vključujejo izpolnitev obljube o denarju na CPU v oblaku, sklad MEAN ponuja prepričljiv sloj baze podatkov v MongoDB. Ta sodobna zbirka podatkov je opremljena s samodejnim ostrenjem in popolno podporo za grozde takoj. Priključite MongoDB in ta se razširi po celotni gruči strežnikov, da ponudi podporo za samodejni preklop in samodejno kopiranje. Glede na enostavnost razvijanja, preizkušanja in gostovanja aplikacij v oblaku je malo razloga, da MongoDB ne bi upoštevali pri naslednjem projektu.

Struktura MySQL je omejena

Vsakdo, ki je že nekaj časa razvil ali vzdrževal aplikacijo, ki temelji na LAMP, ve, da je moč MySQL kot relacijske baze podatkov na trenutke lahko nekoliko zaprta. Kot vse relacijske zbirke podatkov tudi MySQL prisili vaše podatke, da jih potisnete v tabele. To ni problem, če se vsak posamezen vnos prilega popolnoma enaki obliki, toda kako pogosto je svet tako radodaren? Kaj pa, če imata dve osebi isti naslov, ne pa istega računa? Kaj pa, če želite namesto dveh imeti tri vrstice do naslova? Kdo še ni poskušal popraviti relacijske baze podatkov tako, da je preveč podatkov podtaknil v en sam stolpec? Ali pa na koncu dodate še en stolpec in tabela raste neomejeno.

MongoDB pa ponuja strukturo dokumentov, ki je veliko bolj prilagodljiva. Ali želite svojim uporabniškim profilom dodati nov bit osebnih podatkov? Preprosto dodajte polje v svoj obrazec, ga zvijte z ostalimi podatki v dokumentu JSON in ga potisnite v svojo zbirko MongoDB. To je super za projekte, ki se spreminjajo, in za obdelavo podatkov, za katere se na koncu izkaže, da jih je težko omejiti v obliki tabel.

Prostor na disku je poceni

Med velikimi razkritji relacijskih baz podatkov je bil ukaz JOIN. Z JOIN bi lahko prihranili prostor na disku, tako da odstranimo ponavljajoča se polja, kot so mesto, država in poštna številka. Če te pogosto dostopne in ponavljajoče se podatke shranimo v ločene tabele, ki jih lahko vključimo v prihodnje rezultate prek JOIN-a, poskrbimo, da je naša baza podatkov urejena, diski pa tanki.

Toda JOIN-i so lahko za nekatere zapleteni in težki za RAM, in čeprav je še vedno dobra ideja, da podatke ločite v tabelah prek JOIN-ov in dostopate do njih, zdaj, ko se diskovni pogoni merijo v več terabajtih, ni več treba prihraniti prostora na disku. Prostor je tako poceni, da nekateri oblikovalci baz podatkov na koncu denormalizirajo svoje podatke, ker so PRIDRUŽITVE prepočasne. Ko to enkrat storite, ne potrebujete toliko relacijske baze podatkov. Zakaj ne bi namesto tega uporabili MongoDB?

Node.js poenostavlja strežniško plast

Krmarjenje po različnih plasteh svežnja LAMP je lahko težaven ples številnih klobukov, pri katerem se premešate med različnimi konfiguracijskimi datotekami z različno sintakso. MEAN to poenostavi z uporabo Node.js.

Ali želite spremeniti, kako zahteva pot do aplikacije? Potresemo nekaj JavaScripta, ostalo pa naj pusti Node.js. Želite spremeniti logiko, ki se uporablja za odgovarjanje na poizvedbe? Tudi tam uporabite JavaScript. Če želite prepisati URL-je ali zgraditi nenavadno preslikavo, je to tudi v JavaScript. Zanašanje sklada MEAN na Node.js postavlja to vrsto cevovodov na eno mesto, v enem jeziku in v en kup logike. Ni vam treba prebrati strani z navodili za PHP, Apache in kar koli drugega, kar dodate v sklad. Medtem ko ima generacija LAMP različne konfiguracijske datoteke za vse, se Node.js tej težavi popolnoma izogne. Če imamo vse v enem sloju, pomeni manj zmede in manj možnosti za nenavadne napake, ki nastanejo zaradi čudnih interakcij med več plastmi.

MEAN naredi kodo izomorfno

Preprostost se ne ustavi pri uporabi JavaScript na strežniku. Če odprete MEAN, lahko v istem JavaScriptu uživate tudi na odjemalcu in za seboj pustite shizofrenijo odjemalca / strežnika sklada LAMP. Če za Node napišete kodo in se odločite, da jo je bolje postaviti v Angular, jo lahko enostavno premaknete in skoraj zagotovo bo delovala enako. Ta prilagodljivost bistveno olajša programiranje aplikacij, ki temeljijo na MEAN. Če sodelujete pri projektu, vam ni treba iskati strokovnjaka za PHP in JavaScript ali strokovnjaka za front-end in back-end. Namesto tega je vse skupaj JavaScript.

JSON povsod

Tako Angular kot MongoDB govorita JSON, tako kot Node.js in Express. Podatki se lepo pretakajo med vsemi sloji, ne da bi jih prepisovali ali preoblikovali. Izvorna oblika MySQL za odgovarjanje na poizvedbe je povsem lastna. Da, PHP že ima kodo za uvoz podatkov MySQL in olajšanje obdelave v PHP, vendar to ne pomaga odjemalski plasti. Za izkušene veterane LAMP je to lahko nekoliko manjše, ker obstaja toliko dobro preizkušenih knjižnic, ki podatke zlahka pretvorijo, vendar je vse skupaj videti nekoliko neučinkovito in zmedeno. MEAN uporablja povsod isti format JSON za podatke, kar poenostavi in ​​prihrani čas preoblikovanja, ko prehaja skozi vsako plast. Poleg tega JSON-ova vseprisotnost prek sklada MEAN olajša delo z zunanjimi API-ji: GET, manipulacija, predstavitev, POST in shranjevanje v enem formatu.

Node.js je zelo hiter

Apache je bil odličen, toda danes je Node.js pogosto hitrejši. Številna merila uspešnosti kažejo, da Node.js ponuja boljše delovanje, hkrati pa naredi veliko več. Morda je to starost kode. Morda je arhitektura, ki jo vodi dogodek Node.js, hitrejša. Ni pomembno. Danes je, zlasti med nestrpnimi uporabniki mobilnih naprav, pomembno, da se britje izbriše celo v milisekundah in da lahko Node.js to stori, hkrati pa ponuja celoten Turingov mehanizem za njegovo ponovno programiranje.

Globina je pomembna

Ljubitelji PHP se radi držijo odličnih knjižnic kode, ki so bile zgrajene za prevladujoče platforme, kot sta WordPress ali Drupal. Imajo dobre razloge za ponos, vendar njihove prednosti izginjajo, ko Node.js dohiteva.

Upravitelj paketov Node.js, NPM, še olajša skupno rabo kode, javni repozitoriji, ki ciljajo na Node.js, pa hitro rastejo. Čeprav lahko množica PHP v tem trenutku vodi, lahko prihodnost favorizira Node.js. Poleg tega se sedanji operaterji pogosto spreminjajo v smeri spreminjajočih se trendov. Vsak poskus posodobitve okopane platforme, kot je Drupal, z novo različico pomeni, da lahko veliko več razvijalcev pusti oči, da se odpravijo proti novejšim, okretnejšim platformam, zgrajenim okoli Node.js.

Kotna je sveža

Ni ravno pošteno primerjati "A" v "MEAN" z ničemer v svežnju LAMP, ker LAMP ne vključuje analoga. Če želite kaj storiti na strani stranke, ste sami. Seveda obstaja veliko dobrih okvirov, ki temeljijo na PHP, in ki delujejo z MySQL, vendar je vsak nekoliko drugačen in se premika v svojo smer. WordPress, Joomla in Drupal, na primer, ponujajo različne strategije in med njimi je težko preklapljati, kaj šele, da bi pristaniško kodo prenesli z ene na drugo. Mazanje enega odjemalskega ogrodja doda doslednost in stabilnost.

Pomaga tudi, da so Angular zgradili ljudje z 20-letnimi izkušnjami pri izdelavi spletnih aplikacij. Vedeli so dovolj dobro, da so oblikovalsko delo prepustili HTML in CSS. Ugotovili so tudi, kako dodati malo JavaScripta za skeniranje HTML-ja. Oblikovalci podjetja Angular so pogledali, kaj ljudje dobro delajo, nato pa prilagodili JavaScript, da podpira ljudi. Sistem za predloge in logična plast sta bistveno bolj čista od tistega, kar smo videli že prej, deloma zato, ker je ekipa našla enostavnejše načine, kako lokalno moč JavaScript uporabiti, da ugane, kaj počnete.

Zmešaj in poveži

Seveda, če ste res izbirčni, ni razloga, da tega ne bi mogli nekoliko premešati. Veliko razvijalcev uporablja MongoDB z Apache in PHP, drugi pa raje uporabljajo MySQL z Node.js. Angular deluje precej dobro s katerim koli strežnikom, tudi s PHP, ki dostavlja podatke iz MySQL. Ni vam treba biti suženj kratic.

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