Programování

MEAN vs. LAMP pro váš další programovací projekt

Přechod od špičkové zvědavosti k praktickému pracovnímu kůlu není to, co dělá mnoho technologií. Včerejší předčasní povýšenci často nesplní svůj slib verze 0.1. Není tomu tak u technologií, které tvoří divoce akronymizovaný MEAN stack.

Bylo to jen před několika lety, kdy MongoDB, Express.js, AngularJS a Node.js samy zvedaly obočí. Nyní vyrostli a vzrostli a společně dělají vážnou práci a pytláctví malého počtu vývojářů z obrovského tábora LAMP. Ale jak přesně se tato nově vyvinutá ZNAMENÁ věc staví proti LAMPĚ? Kdy je lepší vybrat si dobře otestovanou a vyspělou lampu přes tuto povýšenou kolekci technologií zaměřených na JavaScript?

Odpověď je, když vám jednoduchost a společná struktura usnadní život. MongoDB nabízí flexibilnější a vstřícnější vrstvu pro ukládání dat. Node.js poskytuje lepší propojení pro provoz vašeho serveru, zatímco Express pomáhá standardizovat způsob, jakým vytváříte své webové stránky. Angular na klientovi poskytuje čistý způsob přidávání interaktivních funkcí a bohatých komponent řízených AJAX. Spojte je dohromady a vytvořte čistý a ucelený mechanismus pro přesun dat z uživatele na diskovou farmu a zpět.

Skutečné vysvětlení je však hlubší. Zde nabízíme devět důvodů, proč dát MEAN šanci na váš další projekt. Ne každý má čas nebo rozpočet na to, aby vyhodil a překódoval staré v nejnovějším a nejmodernějším rámci, ani byste neměli zahodit spolehlivost spolehlivých nástrojů testovaných na bitvy jako Apache, MySQL nebo PHP. Ale u projektů na zelené louce, které by mohly těžit z flexibility, jednoduchosti a výkonu, může jít o ZMĚNU, aby byl váš život lepší, než si myslíte.

MongoDB je postaven pro cloud

Pokud vaše plány webových aplikací zahrnují splnění příslibů penny na procesor cloudu, zásobník MEAN nabízí v MongoDB působivou databázovou vrstvu. Tato moderní databáze je ihned po vybalení vybavena automatickým dělením a plnou podporou clusterů. Připojte MongoDB a rozšíří se do vašeho clusteru serverů a nabídne podporu převzetí služeb při selhání a automatickou replikaci. Vzhledem k tomu, s jakou lehkostí mohou být aplikace vyvíjeny, testovány a hostovány v cloudu, není důvod uvažovat o MongoDB pro váš další projekt.

Struktura MySQL je omezující

Každý, kdo po nějakou dobu vyvinul nebo udržoval aplikaci založenou na LAMP, ví, že síla MySQL jako relační databáze může být občas trochu uvězněna. Stejně jako všechny relační databáze vás i MySQL nutí tlačit svá data do tabulek. To není problém, pokud každá položka zapadá do přesně stejného formátu, ale jak často je svět tak velkorysý? Co když dva lidé sdílejí stejnou adresu, ale ne stejný účet? Co když chcete mít na adrese tři řádky místo dvou? Kdo se nepokusil opravit relační databázi tím, že do jednoho sloupce přenesl příliš mnoho dat? Nebo nakonec přidáte další sloupec a tabulka bude neomezená.

MongoDB na druhé straně nabízí mnohem flexibilnější strukturu dokumentů. Chcete do svých uživatelských profilů přidat novou část osobních údajů? Jednoduše přidejte pole do svého formuláře, zahrňte jej spolu se zbytkem dat v dokumentu JSON a vložte ho do své kolekce MongoDB. To je skvělé pro projekty v toku a pro zacházení s daty, která se nakonec mohou ukázat jako obtížná ve formě tabulky.

Místo na disku je levné

Mezi velkými odhaleními relačních databází byl příkaz JOIN. S JOIN bychom mohli ušetřit místo na disku odstraněním opakovaných polí, jako je město, stát a PSČ. Uložením těchto často přístupných a opakovaných dat do samostatných tabulek, které lze zahrnout do budoucích výsledků prostřednictvím JOIN, udržujeme pořádek v databázi a štíhlé disky.

JOINy ​​však mohou být pro některé obtížné a náročné na RAM, a přestože je stále dobrý nápad izolovat a přistupovat k datům v samostatných tabulkách prostřednictvím JOINů, není potřeba tolik místa na disku, protože diskové jednotky jsou měřeny ve více terabajtech. Prostor je tak levný, že někteří návrháři databází nakonec denormalizují svá data, protože spojení jsou příliš pomalá. Jakmile to uděláte, nepotřebujete tolik relační databázi. Proč místo toho nepoužívat MongoDB?

Node.js zjednodušuje serverovou vrstvu

Navigace v různých vrstvách zásobníku LAMP může být obtížným tancem mnoha klobouků, který vás přiměje míchat různé konfigurační soubory s odlišnou syntaxí. MEAN to zjednodušuje pomocí Node.js.

Chcete změnit způsob, jakým vaše aplikace směruje požadavky? Posypeme nějakým JavaScriptem a zbytek necháme na Node.js. Chcete změnit logiku použitou k zodpovězení dotazů? Použijte také JavaScript. Pokud chcete přepsat adresy URL nebo vytvořit liché mapování, je to také v JavaScriptu. Spoléhání zásobníku MEAN na Node.js dalo tento druh potrubí vše na jednom místě, vše v jednom jazyce, vše v jedné hromadě logiky. Nemusíte znovu číst manuálové stránky pro PHP, Apache a cokoli jiného, ​​co do zásobníku přidáte. Zatímco generace LAMP má různé konfigurační soubory pro všechno, Node.js se tomuto problému úplně vyhne. Mít vše v jedné vrstvě znamená menší zmatek a menší šanci na podivné chyby vytvořené podivnými interakcemi mezi více vrstvami.

MEAN dělá kód izomorfním

Jednoduchost nekončí používáním JavaScriptu na serveru. Tím, že přejdete na ZMĚNU, si můžete užít stejný JavaScript i na klientovi a zanechat za sebou schizofrenii klient / server LAMP stacku. Pokud napíšete kód pro Node a rozhodnete se, že je lépe umístěn v Angular, můžete jej snadno přesunout a je téměř jisté, že bude fungovat stejným způsobem. Tato flexibilita výrazně usnadňuje programování aplikací založených na MEAN. Navíc, pokud zaměstnáváte projekt, nemusíte hledat odborníka na PHP a odborníka na JavaScript nebo front-end a back-end specialistu. Místo toho je to celý JavaScript napříč hromadou.

JSON všude

Angular i MongoDB mluví JSON, stejně jako Node.js a Express. Data plynule procházejí mezi všemi vrstvami bez přepisování nebo přeformátování. Nativní formát MySQL pro odpovídání na dotazy je vlastní. Ano, PHP již má kód pro import dat MySQL a pro snadné zpracování v PHP, ale to nepomůže vrstvě klienta. To může být pro zkušené veterány LAMP trochu menší, protože existuje tolik osvědčených knihoven, které snadno převádějí data, ale vše se zdá být trochu neefektivní a matoucí. MEAN používá stejný formát JSON pro data všude, což je jednodušší a šetří čas přeformátováním při průchodu každou vrstvou. Díky všudypřítomnosti JSONu prostřednictvím zásobníku MEAN je práce s externími API mnohem jednodušší: ZÍSKEJTE, manipulujte, prezentujte, POST a ukládejte vše v jednom formátu.

Node.js je super rychlý

Apache byl skvělý, ale v dnešní době je Node.js často rychlejší. Řada měřítek ukazuje, že Node.js nabízí lepší výkon a přitom dělá mnohem víc. Možná je to věkem kódu. Možná je architektura řízená událostmi Node.js rychlejší. To nevadí. V dnešní době, zejména mezi netrpělivými uživateli mobilních zařízení, je důležité oholení výkonu vaší aplikace i milisekundy, což může Node.js udělat, a zároveň nabízí mechanismus Turingova úplného přeprogramování.

Na hloubce záleží

Milovníci PHP rádi lpí na skvělých knihovnách kódu, které byly vytvořeny pro dominantní platformy jako WordPress nebo Drupal. Mají dobré důvody být hrdí, ale jejich výhody se s postupujícím Node.js ztrácejí.

Správce balíků Node.js, NPM, usnadňuje sdílení kódu ještě více a veřejná úložiště cílená na Node.js rychle rostou. Zatímco v tuto chvíli může vést PHP dav, budoucnost může upřednostňovat Node.js. Kromě toho se zavedené subjekty tváří v tvář měnícím se trendům často ukázaly být křehké. Každý pokus o modernizaci zavedené platformy, jako je Drupal, s novou verzí znamená, že mnohem více vývojářů může nechat své oči bloudit směrem k novějším, hbitějším platformám postaveným na Node.js.

Úhlové je čerstvé

Není úplně fér porovnávat „A“ v „MEAN“ s čímkoli v zásobníku LAMP, protože LAMP neobsahuje analog. Pokud chcete dělat něco na straně klienta, jste na vlastní pěst. Jistě, existuje spousta dobrých rámců založených na PHP, které fungují s MySQL, ale každý je trochu jiný a pohybuje se svým vlastním směrem. WordPress, Joomla a Drupal například nabízejí různé strategie a je těžké mezi nimi přepínat, natož aby byl kód portu z jednoho do druhého. Pomazání jednoho klientského rámce přidává konzistenci a stabilitu.

Pomáhá také, že Angular vytvořili lidé s 20 lety zkušeností s tvorbou webových aplikací. Věděli dost dobře na to, aby návrhovou práci nechali na HTML a CSS. Také přišli na to, jak přidat trochu JavaScriptu pro skenování HTML. Návrháři Angular se podívali na to, co lidé dělají dobře, a pak přizpůsobili JavaScript tak, aby podporoval lidi. Systém šablon a logické vrstvy jsou dramaticky čistší než to, co jsme viděli dříve, zčásti proto, že tým vymyslel jednodušší způsoby, jak využít místní sílu JavaScriptu k uhodnutí toho, co děláte.

Mix a zápas

Samozřejmě, pokud jste opravdu vybíraví, není důvod, proč to nemůžete trochu zamíchat. Spousta vývojářů používá MongoDB s Apache a PHP a jiní dávají přednost použití MySQL s Node.js. Angular funguje docela dobře s jakýmkoli serverem, dokonce i s jedním, na kterém běží PHP, aby dodával data z MySQL. Nemusíte být otrokem zkratek.

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