Programovanie

MEAN vs. LAMP pre váš ďalší programovací projekt

Mnoho technológií nevyužíva prechod od špičkovej zvedavosti k praktickému ťažnému koňovi. Včerajšie predčasne narodené podniky často nesplnia svoj prísľub verzie 0.1. Inak tomu nie je v prípade technológií, ktoré tvoria divoko skratkovitý MEAN stack.

Bolo to len pred pár rokmi, čo MongoDB, Express.js, AngularJS a Node.js zdvíhali obočie sami. Teraz vyrástli, dospeli a spolu robia vážnu prácu a pytliakajú nemalý počet vývojárov z rozsiahleho tábora LAMP. Ako presne sa však táto novoobjavená ZMYSLOVÁ vec stavia proti LAMPE? Kedy je lepšie zvoliť si dobre otestovanú a vyspelú lampu v rámci tejto začínajúcej kolekcie technológií zameraných na JavaScript?

Odpoveď je, keď vám jednoduchosť a spoločná štruktúra uľahčia život. MongoDB ponúka flexibilnejšiu vrstvu na ukladanie údajov. Node.js poskytuje lepšiu väzbu na prevádzku vášho servera, zatiaľ čo Express pomáha štandardizovať spôsob vytvárania vašich webových stránok. Angular poskytuje na klientovi čistý spôsob pridávania interaktívnych funkcií a bohatých komponentov poháňaných AJAX. Dajte ich dokopy a vytvorte čistý a koherentný mechanizmus na presun údajov z používateľa na diskovú farmu a späť.

Skutočné vysvetlenie je však hlbšie. Tu ponúkame deväť dôvodov, prečo dať MEANU šancu vášmu ďalšiemu projektu. Nie každý má čas alebo rozpočet na to, aby vyhodil a prekódoval staré v najnovšom, najtrendovejšom rámci, ani by ste nemali odhodiť skalopevnú spoľahlivosť testovaných nástrojov, ako sú Apache, MySQL alebo PHP. Ale pre projekty na zelenej lúke, ktoré by mohli ťažiť z flexibility, jednoduchosti a výkonu, môže ísť o ZMENENIE, aby váš život bol lepší, ako si myslíte.

MongoDB je postavený pre cloud

Ak vaše plány webových aplikácií zahŕňajú splnenie sľubu cloudu na penny za procesor, zásobník MEAN ponúka v MongoDB pôsobivú databázovú vrstvu. Táto moderná databáza je vybavená automatickým delením a plnou podporou klastrov hneď po vybalení z krabice. Pripojte MongoDB a rozšíri sa do vášho klastra serverov a ponúka podporu pri zlyhaní a automatickú replikáciu. Vzhľadom na ľahkosť, s akou je možné aplikácie vyvíjať, testovať a hostovať v cloude, je málo dôvodov, aby ste pre ďalší projekt nezvažovali MongoDB.

Štruktúra MySQL je obmedzená

Každý, kto vyvinul alebo udržiaval aplikáciu založenú na LAMP po akúkoľvek dobu, vie, že sila MySQL ako relačnej databázy môže byť občas trochu uväznená. Rovnako ako všetky relačné databázy, aj MySQL vás núti vkladať vaše údaje do tabuliek. To nie je problém, ak každá položka zapadá do úplne rovnakého formátu, ale ako často je svet taký štedrý? Čo ak dvaja ľudia zdieľajú rovnakú adresu, ale nie rovnaký účet? Čo ak chcete mať na adrese tri riadky namiesto dvoch? Kto sa nepokúsil opraviť relačnú databázu tým, že do jedného stĺpca vložil príliš veľa údajov? Prípadne môžete pridať ďalší stĺpec a tabuľka bude neobmedzená.

MongoDB na druhej strane ponúka štruktúru dokumentov, ktorá je oveľa flexibilnejšia. Chcete pridať nové osobné informácie do svojich používateľských profilov? Jednoducho pridajte pole do svojho formulára, zrolujte ho so zvyškom údajov v dokumente JSON a vložte ho do svojej zbierky MongoDB. To je skvelé pre tokové projekty a pre prácu s údajmi, ktoré môžu byť v konečnom dôsledku zložité obmedziť vo forme tabuľky.

Miesto na disku je lacné

Medzi veľké odhalenia relačných databáz patril príkaz JOIN. Pomocou funkcie JOIN by sme mohli ušetriť miesto na disku odstránením opakovaných polí, ako je mesto, štát a PSČ. Ukladaním týchto často prístupných a opakovaných údajov do samostatných tabuliek, ktoré je možné zahrnúť do budúcich výsledkov prostredníctvom funkcie JOIN, udržujeme poriadok v našej databáze a štíhle disky.

Ale JOINy ​​môžu byť pre niekoho zložité a náročné na RAM, a hoci je stále dobrý nápad izolovať dáta a pristupovať k nim v samostatných tabuľkách cez JOINy, teraz, keď sa diskové jednotky merajú vo viacerých terabajtoch, už nie je potrebné toľko šetriť miesto na disku. Priestor je taký lacný, že niektorí návrhári databáz skončia denormalizovaním svojich údajov, pretože spojenia sú príliš pomalé. Akonáhle to urobíte, už toľko nepotrebujete relačnú databázu. Prečo namiesto toho nepoužiť MongoDB?

Node.js zjednodušuje serverovú vrstvu

Navigácia v rôznych vrstvách stohu LAMP môže byť náročným tancom mnohých klobúkov, ktoré vás premiešajú rôznymi konfiguračnými súbormi s odlišnou syntaxou. MEAN to zjednodušuje používaním Node.js.

Chcete zmeniť spôsob, akým vaša aplikácia smeruje žiadosti? Posypte nejaký JavaScript a zvyšok nechajte na Node.js. Chcete zmeniť logiku použitú na zodpovedanie otázok? Použite aj tam JavaScript. Ak chcete prepísať adresy URL alebo vytvoriť nepárne mapovanie, je to tiež v jazyku JavaScript. Spoliehanie sa MEAN stacku na Node.js dalo tento druh potrubia všetko na jedno miesto, všetko v jednom jazyku a všetko v jednej hromade logiky. Nemusíte znova čítať manuálové stránky pre PHP, Apache a čokoľvek iné, čo do zásobníka pridáte. Zatiaľ čo generácia LAMP má rôzne konfiguračné súbory pre všetko, Node.js sa tomuto problému úplne vyhýba. Mať všetko v jednej vrstve znamená menší zmätok a menšiu šancu na podivné chyby, ktoré vzniknú podivnými interakciami medzi viacerými vrstvami.

MEAN robí kód izomorfným

Jednoduchosť nekončí používaním JavaScriptu na serveri. Ak prejdete na ZÁZNAM, môžete si ten istý JavaScript vychutnať aj na klientovi a zanechať za sebou schizofréniu typu klient / server v zásobníku LAMP. Ak napíšete kód pre Node a rozhodnete sa, že je lepšie umiestnený v Angular, môžete ho ľahko presunúť a je takmer isté, že bude fungovať rovnakým spôsobom. Táto flexibilita výrazne uľahčuje programovanie aplikácií založených na MEAN. Navyše, ak pracujete na projekte, nemusíte hľadať odborníka na PHP a odborníka na JavaScript, alebo front-end a back-end špecialistu. Namiesto toho je to všetko JavaScript naprieč hromadou.

JSON všade

Angular aj MongoDB hovoria JSON, rovnako ako Node.js a Express. Dáta prúdia úhľadne medzi všetkými vrstvami bez prepisovania alebo preformátovania. Natívny formát MySQL na odpovedanie na otázky je, samozrejme, každý svoj vlastný. Áno, PHP už má kód na import údajov MySQL a na uľahčenie ich spracovania v PHP, ale to nepomáha klientskej vrstve. To môže byť pre skúsených veteránov LAMP trochu menšie, pretože existuje toľko dobre otestovaných knižníc, ktoré ľahko prevádzajú údaje, ale všetko sa zdá byť trochu neefektívne a mätúce. MEAN používa všade rovnaký formát JSON, čo ho robí jednoduchším a šetrí čas pri preformátovaní cez každú vrstvu pri preformátovaní. Všadeprítomnosť JSONu v zásobníku MEAN navyše uľahčuje prácu s externými API: GET, manipuláciu, prezentáciu, POST a ukladanie všetkých v jednom formáte.

Node.js je superrýchly

Apache bol skvelý, ale v dnešnej dobe je Node.js často rýchlejší. Mnoho testovacích štandardov ukazuje, že súbor Node.js ponúka lepší výkon a dokáže oveľa viac. Možno je to vekom kódu. Možno je architektúra založená na udalostiach Node.js rýchlejšia. To nevadí. V dnešnej dobe, najmä medzi netrpezlivými používateľmi mobilných zariadení, je dôležité oholenie výkonu vašej aplikácie aj milisekundy a Node.js to dokáže a ponúka mechanizmus Turingovho úplného preprogramovania.

Na hĺbke záleží

Milovníci PHP radi lipnú na veľkých knižniciach kódu, ktoré boli vytvorené pre dominantné platformy ako WordPress alebo Drupal. Majú dobré dôvody byť hrdí, ale ich výhody sa s pribúdajúcimi Node.js strácajú.

Správca balíkov Node.js, NPM, uľahčuje zdieľanie kódu ešte viac a verejné úložiská zamerané na Node.js rýchlo pribúdajú. Zatiaľ čo v tejto chvíli môže viesť dav PHP, budúcnosť môže uprednostniť Node.js. Navyše, súčasní operátori sa pri zmene trendov často ukážu byť krehkí. Každý pokus o modernizáciu zakorenenej platformy, ako je Drupal, novou verziou znamená, že oveľa viac vývojárov môže nechať svoje oči smerovať k novším a svižnejším platformám postaveným na Node.js.

Uhlové je čerstvé

Nie je úplne férové ​​porovnávať „A“ v „MEAN“ s čímkoľvek v zásobníku LAMP, pretože LAMP neobsahuje analóg. Ak chcete robiť niečo na strane klienta, ste na vlastnú päsť. Iste, existuje veľa dobrých rámcov založených na PHP, ktoré pracujú s MySQL, ale každý je trochu iný a pohybuje sa svojim vlastným smerom. WordPress, Joomla a Drupal napríklad ponúkajú rôzne stratégie a je ťažké medzi nimi prepínať, nehovoriac o tom, že by ste mohli kód portu prenášať z jedného do druhého. Pomazanie rámca jedného klienta dodáva konzistenciu a stabilitu.

Pomáha tiež to, že Angular vytvorili ľudia s 20-ročnými skúsenosťami s vytváraním webových aplikácií. Vedeli dosť dobre, že návrhovú prácu prenechali HTML a CSS. Tiež prišli na to, ako pridať trochu JavaScriptu na skenovanie HTML. Dizajnéri Angular sa pozreli na to, čo ľudia robia dobre, a potom prispôsobili JavaScript na podporu ľudí. Systém šablón a logické vrstvy sú dramaticky čistejšie ako to, čo sme videli predtým, čiastočne preto, že tím prišiel na jednoduchšie spôsoby, ako využiť miestnu silu JavaScriptu na odhadnutie toho, čo robíte.

Pomiešaj a vyber

Samozrejme, ak ste skutočne prieberčiví, nie je dôvod, prečo to nemôžete trochu pomiešať. Veľa vývojárov používa MongoDB s Apache a PHP a iní uprednostňujú použitie MySQL s Node.js. Angular funguje celkom dobre s akýmkoľvek serverom, dokonca aj s tým, na ktorom beží PHP, aby dodávalo dáta z MySQL. Nemusíte byť otrokom skratiek.

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