- A hozzászóláshoz be kell jelentkezni
- 7939 megtekintés
Hozzászólások
biztos az a baj, hogy amatőrök készítették, de egy csomó oldalba belefutottam már ahol angulart használnak és annyira "unreszponzív", hogy szegény böngésző örül ha életben marad. rühellem az ilyen oldalakat.
- A hozzászóláshoz be kell jelentkezni
Hát igen, nem véletlenül írták újra az egészet.
- A hozzászóláshoz be kell jelentkezni
Vue.
- A hozzászóláshoz be kell jelentkezni
+1 Tavaly kipróbálgattam kb minden nagyobb frontend frameworköt, de egyedül a Vue volt az amit élveztem is használni.
- A hozzászóláshoz be kell jelentkezni
Köszi a tippet, ránézek. :)
- A hozzászóláshoz be kell jelentkezni
Engem az se gyozott meg (pedig a dolumentaciora adtam egy plusz pontot, mikor eloszor raneztem, de ettol meg feleslegesen komplex)
- A hozzászóláshoz be kell jelentkezni
Probalj egyszer egy "alkalmazast" irni, es rogton elkezded dijazni ezeket a frameworkoket.
Csinalj egy tablazatkezelot pl. Es maris helyerekerul itt minden.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
A lentebb emlitett react native-ot pl ertem miert jo.
De nekem akkor is meredek a reactban, hogy kell hozza a babeljs, meg csomo minden mas. Mar a build scriptek kizenetetol es mukodesetol ossze szoktam hanyni magam. A kedvencem az volt, amikor csak egy specifikus IDE pluginjakent mukodott a build (minify, apro htmlekbol egy nagy array, mindez commitolva csomo conflict vagy gitignore edit surun, es akkor meg nem kerult szoba, hogy JS-ben opcionalis a pontosvesszo, ami sok file minify-janal kulon visszaut)
Butabb (villamgyors) tablazatkezelot irtam mar sima JS-ben fel nap alatt. Meg jquery se kellett hozza, de modern bongeszo igen ;) Az teny, hogy Androidban gyorsabb lett volna Java Objectekkel, azt meg nem generalta le maganak :P
- A hozzászóláshoz be kell jelentkezni
Szerintem amit itt korulirsz az a dedup lesz:)
Azaz vegigmegy a fuggosegeken, es kiszanalja azt belole, amit sose hivsz meg:
https://github.com/webpack/docs/wiki/optimization
Az teny es valo, hogy egy mostani javascript projektet mar komolyan "buildelni" kell,
egy webpack-ba belerazodni, ugy hogy fejleszteskor is kenyelmes legyen
(valtozaskor buildeljen, es ujrainditsa a szerveroldalt is:) az tobb napba tellik.
Ha egy tablazatkezelot ugy osszehoztal,
hogy ket (vagy tobb) ember tudja szimultan szerkeszteni (+autosave),
es ehhez nem kellett neked framework,
akkor menthetetlen vagy: te mar nem vilagosodsz meg.
Egy csomo vallalati alkalmazast en szerintem 2017ben webre kell irni
(megha belso halon hasznaljak is),
es a nativ alkalmazashoz legyen a legkozelebb a mukodese.
Ehhez egy javascript framework tokeletes.
Mobilnal nalam a React native azert kerult elo, mert pont ott elojon,
hogy nincs mindig internet (vagy terero), viszont hasznalni jo lenne a cuccost.
Amugymeg erre megy a vilag. Vagy beallsz a sorba, vagy elmegy melletted. :-\
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
"Menthetetlen"
"Nem vilagosodsz meg"
LOL
"Ket vagy tobb ember tudja szerkeszteni"
Ilyen nem volt, egy ember tudta az enyemet. "Van meg remeny", ha valaki megker, hogy talaljam fel ujra a Google Sheetset? :DDD
"Az teny es valo, hogy egy mostani javascript projektet mar komolyan "buildelni" kell,
egy webpack-ba belerazodni, ugy hogy fejleszteskor is kenyelmes legyen
(valtozaskor buildeljen, es ujrainditsa a szerveroldalt is:) az tobb napba tellik."
Emiatt nekem kapasbol "tul magic" az egesz. Es tul sok programozot lattam ennel a resznel (vagy ezek githez kapcsolasanal) hatalmasakat hibazni.
Raadasul meg nagy is az arcuk, miutan egy feleslegesen bonyolult karbantarthatatlan akarmit osszehanytak, hogy "dehat a frontend ma mar bonyolult, tobbet er". Ja, tok egeszseges, hogy 5 honapig implementalsz 8 menupontot es utana mas hozza se tud nyulni mert csak a te IDE-den megy a build gomb.
- A hozzászóláshoz be kell jelentkezni
Eszem agaban nincs meggyozni teged. En a pont leszarom allasponton vagyok, hogy ki mit hasznal.
Mindosszesen olyan usecase-t probaltam neked eloadni, ahol (ugyan nem nelkulozhetetlen) de
nagyon jol jon es nagyon sokat segit egy ilyen framework.
Akinek fule van hallja meg.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
"De nekem akkor is meredek a reactban, hogy kell hozza a babeljs, meg csomo minden mas"
Nem kell hozzá babeljs. Érdemes használni, hogy használhasd a jsx szintaxist. De react kódot írhatsz anélkül is. A csomó minden más részre konkrétumok híján nem tudok mit mondani, de ha a build rendszerre gondolsz, az is az előnyödet szolgáltja, főleg nagy projektnél.
- A hozzászóláshoz be kell jelentkezni
Kifejtenéd bővebben, hogy miért tekinted feleslegesen komplexnek a Vue-t? Pont fordítva látom. Amikor még "csak" jQuery volt és kézzel kellett vele turkálni a DOM-ban, azt éreztem feleslegesen komplexnek. Vue-val (meg akármelyik modern keretrendszerrel) ez automatikus. Ha pl. egy tömbből kell egy HTML listát feltölteni, akkor csak definiálni kell a tömböt és egy sablonban megmondani, hogyan renderelje azt le. Ezután, ha bármi módosítja a tömb elemeit, azt észleli a Vue és frissíti a DOM-ot. Szerintem ez kifejezetten kényelmes.
Abban egyetértünk, hogy a build/transpiler/bundle eszközök komplexek lehetnek, szerencsére vannak meta-toolok, amik generálnak egy kezdő webpack konfigot, így nem kell azt se 0-ról írni. Sőt, ha nem kell a régi böngészőket is támogatni, akkor pl. a Vue-hoz nincs szükség semmi extrára, működik egyből egy modern böngészővel.
- A hozzászóláshoz be kell jelentkezni
+1 Vue.
Mindent tud, és a vue-cli eszközzel olyan hatékony scaffoldingot és fejlesztői környezetet (ES6, hot reload stb.) lehet gyártani, ami nálam nagyon bevált.
Egy kicsit furcsa volt az elején a szigorú linter, de most már undorodom, ha máshol pontosvesszőt kellene raknom a sorok végére. Gondolom, ettől Crockford feje elkezdene vörösödni, de úgy látszik, ha a linter jól ismeri a pontosvessző elhagyására vonatkozó szabályokat, akkor abból nem lesz semmi baj.
Korábban próbáltam Backbone-t, Knockoutot, Embert, Reactet, Angulart, meg a fene se emlékszik mi egyebet, de a Vue közelébe egyik se ért.
- A hozzászóláshoz be kell jelentkezni
+1, ha lett volna azt jeloltem volna react helyett
- A hozzászóláshoz be kell jelentkezni
Ha már vue, aki próbálta mindkettőt, vue vs react, mik az (ellen)érvek?
- A hozzászóláshoz be kell jelentkezni
Én nem tudtam megszeretni a jsx-t, illetve még nem sikerült olyan React kódot írnom, amire jó volt ránézni.
Ezzel szemben Vue komponenseket kifejezetten kellemes volt írni és később is teljesen átláthatónak éreztem. Tehát nekem főleg esztétikai okokból jön be jobban Vue.
- A hozzászóláshoz be kell jelentkezni
1st: learning curve..
- A hozzászóláshoz be kell jelentkezni
Belelapoztam a Vue leírásába. Tényleg gyorsan tanulhatónak jön le. Úgyhogy most elolvasom az interneten található összes "Why we chose Vue.js over React" című cikket :)
Mondjuk hogy felületes React ismereteim vannak, inkább csak kísérleti szinten van tapasztalatom. Ezek alapján nem tartom nehéznek megtanulni alapjában véve, de a csomó cucc, ami vele jár egy komplexebb webalkalmazás készítésénél (Redux, redux függőségek tömege, szerveroldali renderelés, stb) az már bonyolítja.
Szeretnék meggyőzve lenni, hogy jobb választás a Vue, mert az alapján amit olvasok úgy tűnik, hogy könnyebb dolgozni benne. Cserébe React univerzálisabb olyan értelemben, hogy több helyen használják (munkakeresés szemponjából pl érdekes lehet) illetve van react-native, és jó nagy közösség körülötte.
- A hozzászóláshoz be kell jelentkezni
> szerveroldali renderelés
Innen indultunk, nem? Aztan valami okos kitalalta, hogy toljunk mindent a kliensre mer JS meg minden, amit mar akkor latott az ertelmesebbje, hogy abnormalis, szoval most akkor visszamozdulunk a szerveroldali generalashoz? Jo ez a JS kozosseg, folyamatosan talalja fel a melegvizet :)
- A hozzászóláshoz be kell jelentkezni
Ez hogy jön a React vs Vue témakörhöz? :)
Egyébként nem, nem innen indultunk. Ahonnan indultunk, az weblapok, azaz közel statikus dokumentumok megjelenítése a böngészőben. Itt viszont webalkalmazások rendereléséről van szó, amik nem megjelennek, hanem futnak a böngészőben. Amik inkább szoftverek, mint dokumentumok.
Nyilván hülyeség egy wikipedia oldalt kliens oldalon renderelni. De legalább olyan hülyeség elítélni azt, aki egy honfoglalót, vagy egy chat alkalmazást kliensoldali eszközökkel készítene el.
- A hozzászóláshoz be kell jelentkezni
> Ahonnan indultunk, az weblapok, azaz közel statikus dokumentumok megjelenítése a böngészőben
Ott is kellett volna megmaradni.
> Amik inkább szoftverek, mint dokumentumok.
Szoftverre nativ (vagy arra fordulo) alkalmazas valo. Sajnos a webfejlesztok betortek mostmar a desktop piacra is, aztan kapunk olyan szornyszulotteket Atommal, mint a Slack, ami ugyan rendelkezik deskop klienssel, de annak meg szar. A web nem arra lett kitalalva, hogy alkalmazasokat fejlesszenek benne, ehhez a webalkalmazas-fejlesztok teljes mertekben hozza is szoktak, szoval eszukbe se jut peldaul jobbklikkes kontext menut tenni a desktop programba. Nesze neked UX design, meg "a web a jovo". Ja, korlatozottan hasznalhato jovo, hurra.
- A hozzászóláshoz be kell jelentkezni
peldaul jobbklikkes kontext menut
Ne viccelj, van olyan platform, ahol még jobb egérgomb sincs, hiszen "640KB akarom mondani 1 egérgomb mindenkinek elég kell legyen" :D
- A hozzászóláshoz be kell jelentkezni
Melyik?
- A hozzászóláshoz be kell jelentkezni
"Szoftverre nativ (vagy arra fordulo) alkalmazas valo"
És mennyire natív egy python alkalmazás? Vagy egy Java VM-ben futó alkalmazás? Mennyivel jobb egy olyan szoftvert futtatni, ami qml-t használ, mint egy olyat, ami html-t? Miért másabb futtatókörnyezet a böngésző, mint akármi más?
És mennyivel jobb egy natív alkalmazás? Mennyivel jobb, amikor a pécé verzió egy windows-os appot takar, a linux userek pedig kapják be? Mennyivel megbízhatóbb egy random facebook.exe, ami azt csinál a gépeden, amit nem sajnál, mint egy sandboxolt környezetben futtatott webalkalmazás?
Nem vitatom a natív előnyeit, de vedd észre, hogy a web alkalmazásoknak is van rengeteg, többek közt az, hogy elhoznak egy csomó alkalmazást minden platformra, sandboxoltan, telepítgetés nélkül.
Nem arra lett kitalálva. Igaz. Csak azóta fordult egyet a világ, és változott a platform, fejlődött rengeteget, úgyhogy már bőven alkalmas rá. Tessék észrevenni a változást.
A jobbklikkes felvetésed pedig a fejlesztő hibája, nem a platformé.
- A hozzászóláshoz be kell jelentkezni
"úgyhogy már bőven alkalmas rá."
Azért ehhez a bővenhez elég vastag keretes szemüveg kell... :)
- A hozzászóláshoz be kell jelentkezni
A jobbklikk nem a fejlesztő hibája, hanem azé aki a webappot tableten is akarja használni.
- A hozzászóláshoz be kell jelentkezni
Tökéletes és gyakran használt alternatíva a jobb klikkre érintőképernyős felületeken a hosszan nyomva tartás. Nem kifogás a context menü ellen az, hogy mobilon/tableten is meg kellene tudni jeleníteni.
- A hozzászóláshoz be kell jelentkezni
Gyakran használtnak gyakran használt, de tökéletesnek szerintem messze nem az. PC-n gyakorlatilag "ingyen" van a jobbklikk, míg touchscreen interface-n kb 1-1,5 sec késleltetés, tehát gyakori dolgokat nem célszerű rá tenni, illetve nem annyira intuitív a használata.
- A hozzászóláshoz be kell jelentkezni
Hát, amíg nem lesznek olyan kijelzők, amik felismerik melyik ujjaddal nyomtál oda, vagy nem lesz valami kézenfekvő megoldás az érintőképernyőn két érintés megkülönböztetésére, addig ez a legjobb megoldás. És ha egy kicsit várakozni is kell, tökéletlen megoldásnak nem nevezném. A semminél pedig határozottan jobb.
- A hozzászóláshoz be kell jelentkezni
context menübe weben amúgy sem szokás gyakran használt funkciókat rakni.
- A hozzászóláshoz be kell jelentkezni
Egyrészről a JS libeknél (framework-öknél) érdekes az, hogy ugyanazzal a JS kóddal kliens oldalon is le tudod renderelni az oldalt és szerver oldalon is, egyszer kell csak megírni és mind a kettő helyzetben tudod használni.
Másrészről az értelmesebbje tudja, hogy a kliens oldali renderelés és a szerver oldali renderelés is egy eszköz, sem az egyik, sem a másik nem jobb, mind a kettőnek megvannak az előnyei, hátrányai és ezeket az eszközöket az adott feladatnak, követelményeknek megfelelő mennyiségben használja.
- A hozzászóláshoz be kell jelentkezni
Igen, ez elony. En csak nem ertek egyet azzal, hogy a bongeszot alkalmazasplatformnak leptessuk elo, mert igy az eredeti es az uj celjat se tudja megfeleloen teljesiteni.
Mar az is egy elbaltazott dolog, hogy kulonbozo alkalmazasokat "tabokba" rendezzuk, ahelyett, hogy rabiznank az operacios rendszerre az ablakok kezeleset. Ha meg kiszeded oket kulon bongeszo ablakokba, akkor mikor bezarod, majd ujra elinditod a bongeszot, akkor vagy megkergul, vagy visszakapod az eddig megnyitott dolgokat. Egyaltalan, miert akarnam megnyitni az osszes futo "alkalmazast" az elozo sessionbol? A bongeszo "ablakkezelese" ugy altalaban ugy el van baszva*, ahogy csak lehet. Nem csoda, nem erre talaltak ki.
En ertem, hogy a cegeknek, hobbistaknak tok egyszeru nekiallni heggeszteni valamit HTML+CSS+JS-ben, hogy aztan azt a szomszed Pistike is tudja hasznalni, es lehet a szomszed Pistike meg orul is neki, de en nem. Sajnalatos modon a web"alkalmazasok" ternyeresevel a deskop appok supportja elegge lemaradt, mindenki a webre koncentral, ahol a felhasznaloi elmeny, mondjuk ki: szar.
Nekem csak ez a gondom ezzel az egesz "hol rendereljunk" temakorrel. Weboldal? Rendereld szerveroldalon. Alkalmazas? Irj hozza "nativ" klienst.
Szerencsere mar jopar ceg rajott arra, hogy csak a webre tamaszkodni nagyon hulye otlet, szoval elkezdtek kiadogatni a deskop appokat is (valtozo minosegben), de sajnos nem mindenkinek esett le meg a tantusz.
*: szerk: inkabb kicsereltem az "elbaltazottat", nem akartam szoismetlest
szerk2: egyaltalan, milyen dolog mar az, hogy az amugy alapvetoen popup megnyilo ablakot valami atmeretezhetetlen, athelyezhetetlen overlay-jel helyettesitjuk? Tudom, tudom a tortenelmi okait a popup blokkolasnak, de azert ne mondd mar azt, hogy egy alkalmazas eseten blokkolni kellene a teljes UI-t addig, amig azt az egy rohadt felugro "ablakot" el nem tuntetted onnan. Nem is ertem, ezeknek a termekeknek a fejlesztoi nem hasznalnak normalis szoftvereket, es ennyire elszoktak a jo megoldasoktol, vagy csak igenytelenek, es nem erdekli oket, hogy szar, mer' "jovanazugy"?
- A hozzászóláshoz be kell jelentkezni
En csak nem ertek egyet azzal, hogy a bongeszot alkalmazasplatformnak leptessuk elo
Hát erről nagyon lekéstél, több, mint másfél évtizede már előlépett alkalmazásplatformnak, én már 2002 óta szinte kizárólag csak vékony klienses (böngészős) alkalmazásokat fejlesztek. Elhiheted, hogy van rá igény bőven az ügyfelek részéről.
Nem a cégek úri hóbortja, hogy böngészős alkalmazásokat készítsenek, hanem ez az ügyfelek igénye. Szeretik, ha az alkalmazás könnyen telepíthető, karbantartható, frissíthető, biztonságos, skálázható, platform független, ...
- A hozzászóláshoz be kell jelentkezni
Ertem en, es tudom, ott voltam, akkor kezdtem a szakmat, lattam az egeszet, es mar akkor is szurnyulkodtem azon, hogy normalis platformokhoz kepest mennyi szivassal jar a "webalkalmazas". Orommel tudatom, hogy ez azota se valtozott, meg mindig szopas, de mostmar legalabb mashogy.
Viszont felre ne erts, kell webes frontend is. Csak nem annak kellene lennie a fo csapasiranynak. Fallbacknek tokeletes lenne, de elsodleges platformnak en nem eroltetnem. Persze a penz az nagy ur, az igenyesseg csak utanna jon, szoval addigis marad a szenvedes es a szitkozodas csendben, vagy kevesbe csendben a gep elott.
Szerk: amugy 4-5 eve megmondtam, hogy a cegek le fognak jonni errol a "webet mindenhova" baromsagrol, es ki fognak adni nativ klienseket is, mert egyszeruen szornyu a webes UX, es lam, igazam lett. Ahogy egyre egyszerubb lesz nativ alkalmazast fejleszteni, ugy fognak a cegek visszaallni a normalitas utjara, es kezdenek el vegre hasznalhato termekeket gyartani.
- A hozzászóláshoz be kell jelentkezni
Mintha lenne benned egy kis ellenszenv a webes technológiák irányába. :D
A JS szerver oldali renderelésében az volt az újdonság, hogy a JS-en felnövő generációnak nem kellett PHP-Pistikékké is válni, ha akartak backendet készíteni. Ugyanazt a technológiát tudták így használni frontenden és backenden. Mi fáj neked ebben? Én meg használnék frontenden natívan Pythont, csak sajna egyik böngésző se támogatja.
- A hozzászóláshoz be kell jelentkezni
Az faj, hogy single thread vagy esetleg workeres a node, es meg egy volatile valtozot sem tud kezelni tobb szalon a memoriaban. Es emellett eloadjak, hogy milyen jol skalazodik.
- A hozzászóláshoz be kell jelentkezni
Ha ilyenre van szükség, ott hamar el fognak bonyolódni a dolgok, alapból érdemes egy céleszközt használni rá (pl. Redis). Hogy mi köze ennek a skálázódáshoz, azt nem tudom, de nem is értek NodeJS-hez.
Azonban kívánságod máris meghallgatott, most jött ki az ES8 propóza, benne az áhított új ficsőr: Shared Array Buffers.
- A hozzászóláshoz be kell jelentkezni
Hmm?
https://nodejs.org/docs/latest/api/cluster.html
Egyebkent a skalazodast rengeteg felekeppen el lehet kepzelni:
pl.: nginx + nodejs szerverek. Mondjuk mindegyik egy kis virtualis gep. (ez az egesz egy gepen belul). Ez az alapkiepites:)
Amit te szeretnel hogy valtozokat osszunk meg a processzek kozott annal jobb megoldas,
hogyha a kozos valtozokat kiteszed egy adatbazisba (memcached, redis, stb).
A te megoldasoddal az a baj, hogy mit csinalsz akkor, hogyha kinotted azt a fizikai gepet?
Hogyan szervezed a programodat tobb gepre?
(akkor hogyan fognak kozos valtozoval kommunikalni?)
Nekem jobban tetszik a kis epitokockas elgondolas. Ez a microservice, vagy mi a szosz.
Sokkal konnyebb tenylegesen skalazni (tobb gepre szetosztani).
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
"
Amit te szeretnel hogy valtozokat osszunk meg a processzek kozott annal jobb megoldas,
hogyha a kozos valtozokat kiteszed egy adatbazisba (memcached, redis, stb).
A te megoldasoddal az a baj, hogy mit csinalsz akkor, hogyha kinotted azt a fizikai gepet?
Hogyan szervezed a programodat tobb gepre?
(akkor hogyan fognak kozos valtozoval kommunikalni?)
"
Szoval azt akarod mondani hogy
Int thread A -> tcp -> redis/memcached -> tcp -> thread B interpretalt nem eppen optimalis listenerje -> Int thread B
sokkal skalazhatobb es megbizhatobb es "enyemmel ellentetben nem problemasabb" megoldas, mint:
Voltile int x;
majd g++-szal optimalis multithread (lock/unlock OS szinten kitesztelt C lib hivasokkal) ASM-et kalkulalni.
(Arrol nem is beszelve, hogy nincs az a JS async kod, aminel ne lehetne sokkal olvashatobb std::thread alapu C++ kodot irni ;) )
(Oke, a C++ tulzas, de nem veletlen kezd elterjedni a Go http szerveroldalon)
Long story short: a node-nak el fog jonni a vege. A PHP elore megirt halala is a rossz thread kezeles egyelore, de ott tobb az esely, hogy eszhez ternek.
- A hozzászóláshoz be kell jelentkezni
"thread B interpretalt nem eppen optimalis listenerje"
A node.js mögött lévő V8 motor compile-olja a JS kódot gépi kódra, és úgy futtatja.
"Szoval azt akarod mondani hogy [tcp, redis, memcached, js] sokkal skalazhatobb es megbizhatobb es "enyemmel ellentetben nem problemasabb" megoldas, mint: Voltile int x; [...]"
Skálázhatóbb? Természetesen. A te változód threadek közt van megosztva egy gépen belül, a memcached pedig akár több gép közt is.
Tény, hogy a te megoldásod gyorsabb, egész addig, amíg a kódnak elég egy gép teljesítménye. Amint túl kellene skálázódni azon, kénytelen volnál te is egy "problémásabb" megoldást alkalmazni.
Szerk: Egyébként milyen esetben hiányzik a szálak kezelése a PHP-ból? A tipikus felhasználás webes requestek kezelése. A párhuzamosítás inkább úgy történik, hogy több processz dolgozik egy szálon, mindegyik egy-egy requestet kiszolgálva. Tudsz olyan esetet mondani, ahol volna értelme annak, hogy threadeket csinálj PHP-vel?
- A hozzászóláshoz be kell jelentkezni
Websocket server/daemon eleg jo pelda? (Annak is Go-ban kezdenek neki, pedig nem szeretem a Go-t annyira)
Lenyeg websocket servernek a php es a nodejs is alkalmatlan (mindketto a single thread vs egy port miatt)
Tobb gepre skalazasnal inkabb pont ott kezdodik a gond hogy DB (foleg relacios adatnal szazmillio soroknal). Az szukebb keresztmetszet.
- A hozzászóláshoz be kell jelentkezni
Akár jó példa is lehet, csak nem konkrét. Az tény, hogy a PHP nem alkalmas erre a célra, de nem is erre találták ki, hülyeség elvárni egy asztaltól, hogy csóválja a farkát, hiába van négy lába.
Minden más egyéb feladatra, amire viszont tökéletes, arra továbbra is az lesz, lehet hogy jobban is, mint egy go (vagy akár node) alkalmazás.
Arról viszont nem vagyok meggyőződve, hogy egy node app ne lenne alkalmas websocket szerverként. Miért is? Csak mert nem tud több szálat kezelni (ami szintén nem igaz már)? Attól csak lassabb lesz, nem alkalmatlan, ráadásul erősen feladatfüggő. Mi az, ahol szükséges az, hogy te nagyon gyorsan tudj kommunikálni több szálon futó kóddal.
- A hozzászóláshoz be kell jelentkezni
"Csak mert nem tud több szálat kezelni (ami szintén nem igaz már)?"
Nem kepes tobb szalat kezelni legalabb a Java szintjere optimalizalt thread safe OS szinten lockolt (volatile) valtozoval. Ezert alkalmatlan. Amit fentebb felvazoltam az 100-200x-os sebessegkulonbseg (ket thread + listener + redis + 2 tcp vs azonos memoriaszerkezet es precompiled code es libc gyorsasagahoz kozeli hivasok azonos nyelv primitivjenek vagy akar objektumanak)
De a legfontosabb az az, hogy ezt a 100-200x-os sebessegkulonbseget el is tudom adni a megrendolnek, szep kis grafikonokat lehet rola rajzolni. A megrendelo ugyanis az az embertipus, aki 20 eve elhitte, hogy a DVD regio kod az egy jo biztonsagi feature, a fejlesztok meg hiaba fogtak a fejuket onnantol.
- A hozzászóláshoz be kell jelentkezni
Azt a részét felfogtad, hogy nem gyorsaságról, hanem skálázhatóságról volt szó, ugye? Senki nem tagadta, hogy egy ilyen változó gyorsabb, mint egy tcp-n elért akármi. Konkértan le is írtam. Mibe is kötsz bele? :)
- A hozzászóláshoz be kell jelentkezni
Abba hogy
"Arrol viszont nem vagyok meggyozodve, hogy egy node app ne lenne alkalmas websocket szerverkent"
Mert en igen :P
- A hozzászóláshoz be kell jelentkezni
Akkor már csak az a kérdés, hogyha olyan szuper a te megoldásod miért nem ezt használják a NodeJS helyett? :)
- A hozzászóláshoz be kell jelentkezni
Majd atallnak valami masra. Szep lassan kiresearcholi/kiresearcholte es nyilvanossagra hozza evekre ra egy corporate, aki mar erzi, hogy szar 30 gepen node szerveren futtatni az 1 gepen is elfero millio useres csetjet, es neki majd elhiszitek.
Egyelore "nem eleg rossz" (lasd meg Windows, systemd), es konnyu Javascript es PHP fejlesztot talalni. Elobbinek mondjuk viccesen megy fel az ara, es ennek nagyon csunya vege lesz.
- A hozzászóláshoz be kell jelentkezni
"Majd atallnak valami masra."
Igen a dolgok általában így működnek.
A mérleg egyik oldalán olcsó sok munkaerő-lassú kód (nodejs, php), másikon drága és kevés munkaerő-gyors kód(C, assembly). Nem mindig a sebesség a lényeg, úgy általában inkább a pénz. Pl te is ha annyira hiszel a megoldásodban, meggyőzhetsz cégeket és jó pánzárt optimalizálhatsz nekik. A többit a piac eldönti. :)
"30 gepen node szerveren futtatni az 1 gepen"
Ez azért redundancia miatt se mindegy. 1 gép elfüstöl leáll minden.
- A hozzászóláshoz be kell jelentkezni
Halkan megemlítem, hogy az Instagramnál Pythonnal (pontosabban egy agyonhekkelt Djangoval, Python 3.5 alatt) szolgálnak ki napi 400 millió felhasználót. A Python meg nem nyers gyorsaságáról híres. Létezik más szempont is egy technológia kiválasztásánál, mint a nyers sebesség. Ez esetben a "time to market" mutatóban ver náluk köröket más megoldásokra.
- A hozzászóláshoz be kell jelentkezni
A python legalabb aranylag hatekonyan tud tobb core-t hasznalni. Tudtommal ott is van volatile valtozo.
- A hozzászóláshoz be kell jelentkezni
Általánosan nem. Pythonnál ott a Global Interpreter Lock több szál (thread) esetén. Multiprocess módban lehet használni volatile-szerű változókat, de webes környezetben itt is inkább a workeres megközelítés az elterjedt, pl. uWSGI használatával. Ha, tegyük fel, websocketen keresztül akarnék valami élő interaktív tartalmat több felhasználónak mutatni, Redissel oldanám meg a kommunikációt, ott erre találták ki a Publish/Subscribe funkciókat. Biztos meg lehet valahogy oldani csak Pythonnal is, de minek találjam fel ismét a spanyolviaszt, ha használhatok egy céleszközt is.
- A hozzászóláshoz be kell jelentkezni
"Mert en igen :P"
De konkrétumokat nem mondtál. Mondd, mi az, ami miatt nem alkalmas? Hiszen több kész megoldás létezik már, ami ellátja a feladatát.
- A hozzászóláshoz be kell jelentkezni
Ellatja, de 1 millio user/sec folott is?
- A hozzászóláshoz be kell jelentkezni
Vagy igen, vagy nem. De ha nem, üzembe lehet állítani plusz egy gépet további clusterekkel.
A te volatile változós megoldásdod hogy skálázódik több gépre, ha úgy hozza a szükség?
- A hozzászóláshoz be kell jelentkezni
Szereted ezt az egyetlen sort puffogtatni, hogy "a volatile valtozo csak egy gepen van". Szerinted ez kizarja tcp csomagok kuldeset, vagy mi? ;) Onnan indultunk, hogy a volatile valtozo 100x gyorsabb, de ha tobb gepre kell skalazni akkor tcp+microservice
Mit nem ertetek azon, hogy attol meg hogy a masodikat tudja a node (meg minden mas is), az elsot meg nem fogja, es fontos performance-szal kapcsolatos szerepe lesz egy meret felett?
- A hozzászóláshoz be kell jelentkezni
1) Tudja a node mindkettőt. Csak nem úgy, ahogy te várod
2) Te is szereted a saját álláspontodat szemellenzősen nézni
3) Senki nem mondta, hogy kizárja a tcp csomagok küldését. Egymással szembe pont te állítottad a kétféle megoldást.
- A hozzászóláshoz be kell jelentkezni
1) Tudja a node mindkettőt. Csak nem úgy, ahogy te várod
Hanem hogy?
Mondjuk legyen a feladat egy performáns RDBMS megírása (tfh le akarod cserélni a mysql-t). Hogy csinálod ezt Javascriptben, ezzel a "nem úgy, ahogy te várod" megoldással?
Tekintsünk el attól a megoldástól, hogy keresel egy C-ben megírt embedded multithreades RDBMS-t, és írsz köréje egy JS network layert... :D
- A hozzászóláshoz be kell jelentkezni
Jézusom, hogy jön ide az adatbáziskezelő?
Konkrétan az egész szál a szerveroldali weboldal renderelésből indult ki. Nyilván nem node alatt fogsz megírni egy db szervert. Nyilván a megfelelő eszközt a megfelelő célra. Te komolyan ennyire hülyének nézel, hogy javascriptben állnék neki ilyet írni?
Vagy attól szar mindenre a node, php és társai, mert nem lehet benne oprendszert írni?
- A hozzászóláshoz be kell jelentkezni
És hogy lesz szerveroldali weboldal renderelésed db szerver (vagy vele funkcionálisan ekvivalens réteg) nélkül? Mondjuk az esetek 99%-ában, amikor erre szükség is van?
Igazából az én véleményem a JS felmagasztalásáról annyi, hogy az igazi problémát (shared adat hatékony megosztása és feldolgozása) nem oldjuk meg vele, csak áttoljuk a döglött lovat a szomszéd telkére (db layer), aztán oldják meg ott...
- A hozzászóláshoz be kell jelentkezni
+1
Hagyjad, meg mindig nem erti a workerek lehetosege es a volatile valtozo lehetosege kozti kulonbseget.
- A hozzászóláshoz be kell jelentkezni
Remek ez a szál. Eljutottunk onnan, hogy a JS fejlesztők nem akartak PHP-t tanulni backendhez (így létrejött a nodeJS), oda, hogy szar a JS, mert nem lehet benne adatbázis szervert írni. :D
Mi a búbánatos fenének akarna valaki JS-ben RDBMS-t írni? Nem akar senki ilyet. NodeJS-ből is el lehet érni akármelyik adatbázist, ha szükség van rá.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Van par inmemory adatbazis, amit irtak mar nodejs-ben. Egyiket se probaltam.
Vagyis de, egyet hasznalok:
http://www.tingodb.com/
De ezt azert tulzas lenne adatbazis szervernek hivni.
En arra hasznalom, hogy onjaro legyen a programom,
es ne kelljen rogton adatbazis az indulashoz. Amolyan fallback.
(lehet a githubos linket kellett volna direktben irni:
https://github.com/sergeyksv/tingodb )
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
> Ellatja, de 1 millio user/sec folott is?
Nehez olyan chatszobat elkepzelni, ahol 1 millio user beszelget *egymassal*.
Ha meg nincs megse 1 millio user, akkor szet lehet osztani tobb gepre,
"szobakat/csoportokat" pakolgatni ide-oda, ahogy a terheleseloszlas megkivanja.
Nem eletszeru amit irsz.
Inkabb gyere olyan peldakkal, ami tipikusan egy gepen fut.
Mondjuk egy CAD tervezoprogram:) Azokat milyen jo lenne javaban megirni!
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Azt észrevetted, hogy nem csak microservices-en lehet megoldani, hanem volt egy link is a több szálú végrehajtásról?
Itt egy másik és még egy.
Van több eszköz és a feladatnak megfelelőt kell használni, ha kell microservice-ek a skálázhatóságért, ha kell, akkor több szálú végrehajtás a gyorsaságért. Természetesen vannak megoldások, ahol a kettőt lehet vegyíteni is (ugyanaz a kód futhat így is, úgy is), js alatt nem tudom van-e ilyen, Scala alatt biztosan.
- A hozzászóláshoz be kell jelentkezni
Ne felejtsük el, hogy a kritikus sebességigényű feladatokra lehet c modulokat írni node.js-hez, de ha az túlzás, lesz (van?) webassembly támogatás is.
- A hozzászóláshoz be kell jelentkezni
PHP-ban meg van shell_exec, meg C-ben is lehet Perl kodot bash-en keresztul behivni ennyi erovel (lasd az a "tehetseges" dev az Apple-nel anno).
A lenyeg itt az lenne, hogy minel kevesebb nyelv memoriaszerkezetevel meg azok minel kevesebb hulyesegevel es kulonbozosegevel kelljen bajlodni (a fejlesztonek is, meg a compilernek is)
- A hozzászóláshoz be kell jelentkezni
"js alatt nem tudom van-e ilyen, Scala alatt biztosan."
:DDDD
Amugy a worker process-ek letezeset JS-ben egy masodpercig se tagadtam. A linkekben nem lattam, hogy hogy hasznaljak ugyanazt a memoriabol kivasott egyszeru valtozot parhuzamosan.
A workerek arra jok JS-ben, hogy ahany cpu mag, annyi reszere oszthatod a kepernyon a canvasokat az animacioidhoz, de ha lockolni kell par resource-ot backenden, ott mar brutalis overhead lesz.
- A hozzászóláshoz be kell jelentkezni
Itt üzenet küldéssel van megoldva a konkurencia kezelése a lock, synchronization helyett. Természetesen mindkét eszköznek megvannak a maga előnyei hátrányai, így itt sem hirdetnék győztest.
Az üzenetküldéses konkurencia kezelés egyik legfőbb előnye, amit már írtam is, hogy ugyanúgy működhet két thread között és két (micro)service között is, amik akár a világ két eltérő végén futnak. Tehát nem csak felfelé skálázható (scale up), hanem szélességében is (scale out).
- A hozzászóláshoz be kell jelentkezni
Persze, de üzenetküldést bármilyen platformon lehet csinálni (én írtam Perlben multi-node elosztott rendszert), viszont rendes, kényelmes shared-memory alapú párhuzamosítást meg nem - és a való életbeli problémák igen jelentős részében ez utóbbi bőven elég skálázhatóságot ad (hány core-nál is tartunk per socket? 22? 28? mihez nem elég 2..4x22..28 cpu core?), miközben jóval kevesebb az overhead.
Szóval arról beszélünk, hogy míg a jobb platformokon választhatok, hogy az adott feladatra melyik a jobb megközelítés, addig az ilyen single-thread-alapú megoldásoknál kénytelen vagyok mindent üzenet alapon megoldani. Ami működhet, persze, de azért nem véletlen, hogy a db layert nem javascriptben szokták írni... ;-)
- A hozzászóláshoz be kell jelentkezni
a való életbeli problémák igen jelentős részében ez utóbbi bőven elég skálázhatóságot ad (hány core-nál is tartunk per socket? 22? 28? mihez nem elég 2..4x22..28 cpu core?)
Pl.:
- sok felhasználó egyidejű kiszolgálására,
- földrajzilag elosztott rendszerekhez,
- hibatűrő rendszerekhez (egy gép elromlik, akkor is üzemeljen tovább),
- deadlock és szinkronizációs hibáktól mentes kód egyszerű készítésére
Még egyszer, egyik sem silver bullet, van amire egyik jobb, van amire másik, most is csak arra hoztam példát amire kérted, hogy mikor jobb az üzenetküldős rendszer, a shared-memory-nak is meg vannak az előnyei.
Szóval arról beszélünk, hogy míg a jobb platformokon választhatok, hogy az adott feladatra melyik a jobb megközelítés
Teljesen egyetértek, én is sokkal jobbnak tartom pl. a Scala-t.
a való életbeli problémák igen jelentős részében ez utóbbi bőven elég skálázhatóságot ad
Ebben tér el a véleményünk, én a való életbeli problémák jelentős részénél jobbnak tartom az üzenetküldőset.
- A hozzászóláshoz be kell jelentkezni
> szoval most akkor visszamozdulunk a szerveroldali generalashoz?
csak egy szo: google.
Bar mar igerik, hogy a js tartalmakat is ertelmez a google bot,
de azert az meg hagy kivannivalot maga utan.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
vilagga megyek
I hate myself, because I'm not open-source.
- A hozzászóláshoz be kell jelentkezni
+1000
- A hozzászóláshoz be kell jelentkezni
+1000000
- A hozzászóláshoz be kell jelentkezni
Dettó.
- A hozzászóláshoz be kell jelentkezni
Hazamegyek.
- A hozzászóláshoz be kell jelentkezni
jelenleg jquery, de egy zoldmezos projektnel megneznem a fent emlitett 2-t is...
--
Allitsuk meg Andorrat!
- A hozzászóláshoz be kell jelentkezni
Ha nem kell IE9 elotti browsereket tamogatnod, akkor ma mar jquery se kell, es a jquery akar 100x lassabb kodot eredmenyezhet. De a jquery legalabb nem egy olyan szornyeteg, mint az angular, vagy a react
- A hozzászóláshoz be kell jelentkezni
az megvan ugye, hogy az angular is jqueryt hasznal a dom-hoz?
(a react ugye nem)
- A hozzászóláshoz be kell jelentkezni
Meg
JQuery-t amugy hasznalok, foleg, ha mar a projektben volt eleve, vagy kell regi browserekre support. Meg sokaknak konnyebb jquery kodot irni olvasni, mint vanilla js-t, csak ott sima js-ezek ahol tenyleg akarom hogy gyors legyen minden.
Angulart semennyire sem hasznalok, recruiterekkel is megbeszeltem, hogy vicceljek el magukat a kliensnek, hogy nalam nagyobb az eselyuk fejlesztokent bekerulni, ha kitorlik az Angulart meg a Reactot a CV-jukbol. Aki nem veszi a lapot, hanem elkezd hitteriteni, azzal meg nem kell dolgoznunk, ennyi, tudni fog a recruiter neki masik allast, ahol nem az ido a legertekesebb valuta, es valaki mas mar meggyozott egy hozza nem erto gazdasagi vezetot. :P
- A hozzászóláshoz be kell jelentkezni
:D
- A hozzászóláshoz be kell jelentkezni
na de ha sem angular, sem react, de meg vue sem, akkor te mit hasznalnal szived szerint?
--
Allitsuk meg Andorrat!
- A hozzászóláshoz be kell jelentkezni
A javascript onmagaban is eleg okos. Sokakat ez meg szokott lepni. ;)
Libekben gondolkodom, nem frameworkokben. "Do one thing and do it well" (a la Unix)
(Jquery amugy inkabb lib mint framework a szememben, az oke is, csak konnyebb benne 100x lassab foreach-et irni pl.)
- A hozzászóláshoz be kell jelentkezni
Baratom , a Vue pont és amiről beszélsz...
- A hozzászóláshoz be kell jelentkezni
Latok use case-t, ahol ez kenyelmes, ja:
https://vuejs.org/images/lifecycle.png
Meg az is tetszik, hogy a reacttal ellentetben nem akarja behivni a fel npm univerzumot dependency-nek.
De altalaban nincs folyamatos domfigyelesre igenyem. Meg le tudom magamnak definialni azt a par listenert ami kell. Olyankor mar ez is overkill.
- A hozzászóláshoz be kell jelentkezni
Ha megismered, akkor majd megtudod, hogy ugyanúgy mint a reactnal, itt is virtual DÓM "figyelés" van. Emellett te írod le azt hogy mit kell figyelnie. Nem figyel magáról mindent.
Talán itt le van irva.
https://vuejs.org/v2/guide/reactivity.html
- A hozzászóláshoz be kell jelentkezni
Ezt hogy kell érteni hogy önmagában is elég okos?:) A framework nem egy új nyelv, hanem egész egyszerűen az adott nyelvben írt jó adag kód, aminek segítségével könnyebben el lehet érni bizonyos célokat, jelen esetben a DOM manipulációt és a renderelést, egy jól struktúrált kódhalmazon keresztül.
Nagyon szuper ha az amit írsz megoldható vanilla js-ben is egyszerűen és emiatt nem kell feleslegesen behúzni egy komplett libet, de ez esetben egész biztos, hogy amúgy sem volt az adott feladatra alkalmas az említett frameworkok egyike sem. Btw a Treeshaking és a Deadcode elimination egyre jobban működik, így még az is előfordulhat (hogy egy kellően erős fejlesztői gépen) semmilyen hátrány nem lesz akkor sem, ha behúzol több száz KB-nyi frameworkot, mert a végén csak annyi marad meg amennyit valóban használsz.
- A hozzászóláshoz be kell jelentkezni
Hello!
Amúgy csak érdeklődés szinten a topic nyitó melyik angularra gondolt? Az Angular.js-re vagy az Angular2-re?
- A hozzászóláshoz be kell jelentkezni
2? Már a 4-nél tartunk :D
- A hozzászóláshoz be kell jelentkezni
Na jo, de ez mar az Angular 4?
- A hozzászóláshoz be kell jelentkezni
Az csak semver. Attol az meg angular2, amit most angular.io nak vagy epp hogy a turoban hivnak.
Engem szemely szerint a typescripttel vesztettek el ( meg megjelent a react native).
Megvan az a hobbim, hogy belenezek a forrasba. Kicsit hulyen nez ki, hogy javascript frameworkot irunk mas programozasi nyelven...
(jo tudom a typescript lenyegeben egy syntactic sugar, de es6 ota kb. nincs erdemi elonye. Altalaban aki elindul ezen a lejton a Go-nal kot ki a vegen...:-D)
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Én az Angular miatt kezdtem el a typescriptet használni, de már nodejs projectekben is használom, mert nagyon bejön, gyorsabb vagyok vele. "de es6 ota kb. nincs erdemi elonye" szerintem ez nem igaz, a legnagyobb előnye ott van a nevében: types
- A hozzászóláshoz be kell jelentkezni
En azt hittem az osztaly az:)
En pont a nodejs-nel nem szeretek semmi pluszt hasznalni (babeljs pl.),
hogy fejleszteskor --watch -csal ujrainduljon (pl. forever, pm2).
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
"Engem szemely szerint a typescripttel vesztettek el"
Mi baj a typescripttel? Én nem bánom, hogy a kódom szépen dokumentálja magát, és az IDE-m kódkiegészítése, refactor tooljai sokkal segítőkészebbek, mint ha sima JS-t írnék.
- A hozzászóláshoz be kell jelentkezni
:DDDDDD
- A hozzászóláshoz be kell jelentkezni
Inkabb felmondok :)
- A hozzászóláshoz be kell jelentkezni
Polymer
- A hozzászóláshoz be kell jelentkezni
React.
De csak azert, mert van react native.
Biztos velem van a gond, de ha valamit, akkor az android studios pocsolest lehet utalni.
Egyebkent lehet olyat csinalni, hogy a weboldalt kiexportalja htmlle, es akkor megvan a statikus sitebuild (raadasul kliensoldalon, mert ebben az esetben a kliensnel van minden info (weboldal allapota).
Az visszapostolja api endpointra.
Azert egy puszta weboldalnal agyuval verebre ilyen framework, de pl. egy xls importhoz tok jo.
Csinaltam ilyen xls importot, 20ezer soros tablazatot rendszeresen radobnak.
Egyesevel dolgozza fel a sorokat, szepen van visszajelzes, tok jo ilyenhez valami okpsabb frameworkot hasznalni.
A yarnhoz is lenne par szavam, de igazabol a React Native akkora hozzaadott ertek, hogy ez eddig a legjobb valasztas.
Talan a jovo ev projektje lesz par angular "alkalmazasomat" react ala portolni. De iden mar react only.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
ExtJS
- A hozzászóláshoz be kell jelentkezni
Ezek szerint te az a mazochista fajta vagy :D
--
Software is like sex: It’s better when it’s free.
- A hozzászóláshoz be kell jelentkezni
Ha tehetem, ezt használom http://vanilla-js.com/ :P
jQuery szerintem egy bloatware, de a legtöbb helyen ez van, régebben, amíg rendesen fejlesztették, mooTools-t használtam, azt szerettem, moduláris és gyors volt.
Angular és React és a többi hipster framework-öt nem használtam, de gáznak tartom, hogy egy egész Paks 2-t kell üzemeltetni, hogy egy ilyen szart használni tudjál... de lehet, régimódi vagyok...
- A hozzászóláshoz be kell jelentkezni
Igen, régimódi vagy, de nincs ezzel semmi baj.
Amúgy jQueryből írhatnának egy olyan verziót, ami úgy működik, mint a lodash. Csak azt kellene importálni ami kell. Bár a jQuery ~30kb tömörítve, egy-egy font több ennél, de azért jó lenne.
- A hozzászóláshoz be kell jelentkezni
hiába importálod csak azt amit kell, ha nem használsz olyan compilert ami utána kidobja a felesleges kódot, akkor be fogja húzni az egészet.
- A hozzászóláshoz be kell jelentkezni
Eddig en is VanillaJS-t hasznaltam egy csipetnyi jQuery-vel, de a mostani projektben Reactra tertem at, a Redux-szal egyutt nagyon eros, raadasul meagyazza a React Native tudast is.
--
Software is like sex: It’s better when it’s free.
- A hozzászóláshoz be kell jelentkezni
Frontendre purescriptet hasznalok.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
React lite. Ezt eltettem.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni