MEAN rubrika: Programování: JavaScript

1 Data909
položil/-a 4.10.2014

Niekto kto robi do MEAN stacku a mohol by ma zasvatit do jeho tajov ??

odkaz
4 VirtualSkiper
odpověděl/-a 5.10.2014

Preskocim uvodni fraze, jakoze se jedna of fullstack kompletne v JS. Z meho pohledu je MEAN dobry zpusob jak se UI developer dostane k funkcnimu serverovemu kodu, pricemz naroky na znalost NODE, EXPRESS a/nebo MONGOdb jsou minimalni. Pod buzzwordem MEAN se soucasnosti tvori base reusable kodu, ktery by mel pomahat vytvaret aplikace rychleji a nepsat stejne veci porad dokola (podobne jako sveho casu RUBY). MEAN v soucasnosti tlaci dva produkcni tymy MEAN.io a MEAN.org. Na nejnizsi urovni jsou si kody docela podobne (myslim ze se forkli ze stejneho jadra), ale jejich pristup se trochu lisi. Jedni rezou problem po radkach druzi po sloupcich.
mean.org je postaven na generatoru yeoman/yo, ktery ti pomuze vygenrovat scaffold kodu, ktery si bude vzajeme povidat, navzajem se injektovat a dedit po sobe. Vsechno ostatni je ale uz na tobe.
mean.io jde o kousek dal. Ma vlastni build/cli rozhrani (jeste nad GRUNTem) a postupne vytvari knihovnu hotovych kompletnich modulu (packages), ktere aplikaci pridavaji funkcionalitu napric CRUD moduly (admin, tokens, internacionalizace, sockets). Na jednu stranu je to vyhoda protoze dostanes do ruky pomerne dobre optimalizovany (plne integrovany) kod se specifickou funkcionalitou, na druhe strane mi trochu chybi yo volnost vytvorit si v ramci modulu novy controller, servisu nebo cokoliv.
Ani jedna implementace MEAN neni idiot proof, neda se vysvetlit jednim postem na foru a budes si di toho kodu muset na nejakou dobu zalehnout abys pochopil o co tam jde. Rozhodne bys mel umet alespon cist Angular, vedet jak funguji moduly, dependency injections protoze jinak se v tom ztratis. Obe implementace organizuji kod podle konecne funkce. Kdyz zakladas funkcionalitu zakaznici tak to zalozi subfolder "zakaznici" a veskery souvisejici kod (klient i server) je ulozen uvnitr. Se zbytkem aplikace si to povida pomoci application-wide sluzeb (identifikace, i18n, atp).
Jinak te ceka podobny zazitek jako se samotnym Angularem. Nejprve obrovska euforie, za den vygenerujes 80% potrebneho kodu a dalsi pulrok ho budes vylepsovat, nadavat a resit proc je to udelano zrovna takhle :)
Pokud jsi do MEAN jeste neinvestoval, urcite bys mel zvazit jeste dalsi alternativy. Prinejmensim Sails.js + Angular (ktery podle me lepe rozdeluje logiku mezi klienta a server ) stoji za zvazeni. Jinak reseni Mongo, Whatever, Angular, Node existuje nekolik. Nakolik se ale vyplati investovat do neceho jineho nez defacto Node standardu Express je otazka. Express zna kazdy a kdyz ti vypadne backendovy clen tymu, snadneji ho nahradis.

Komentáře

  • VirtualSkiper : Variantou kdy by ses chtel z nejakeho duvodu vyhnout Expressu by mohl byt TotalJS. V nasem prostoru to ma vyhodu, protoze to napsal Peter Širka, kterej je na tomhle serveru, ergo kdyz budes mit nejakej trouble (a to mit budes) dovolas se plne kvalifikovane pomoci na daleko vyssi urovni nez jako jeden z milionu zoufalcu na SO, nebo nejake skupine. 5.10.2014
  • petersirka : @VirtualSkiper ďakujem, veľmi si to vážim. Každému pomáham ako sa to dá. Čo sa týka MEANu tak aj ja som podobnú funkčnosť dorobil do total.js, mám k tomu aj niekoľko príkladov - hľadať treba pod angular.js (https://github.com/totaljs/examples). Určite sa oplatí pozrieť aj na iné alternatívy ako Express, ale reálne jediná alternatíva je total.js (nakoľko všetko je postavené na connecte alebo expresse - aj Sails.js). To je všetko, ďakujem. 5.10.2014
  • VirtualSkiper : @petersirka komu cest tomu slava :) Aby byl vycet "Angular stacku" kompletni jeste existuje Synth, ale to je pro zmenu taky Express ;) Pro rychly navrh drobnejsich aplikaci neni spatny Deployd.js jenze tomu potom chybi nejaka solidnejsi podpora build procesu (nikdy se mi to nepodarilo rozchodit nikde mimo localhost) a jak Google nabral hlavniho developra vyvoj v podstate zdechl. 8.10.2014

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.