Správičky 2 799 Blogy 945 Fórum 18 557

Zaujímavosti zo sveta

13.05 Antispam report Exchange 2013/…
blogCZSK
Nedávno jsem se setkal s prosbou, zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dos…
13.05 Pozvánka: konference, workshop…
blogCZSK
Níže jsme pro vás připravili přehled akcí, které jsou pro vás připraveny v příštích několika týdnech. Coding Bootcamp 19. 5. 2016 – Praha V …
12.05 Pozvánka: Nástroje a služby pr…
blogCZSK
Od vývoje přes nasazení po správu napříč platformami Rádi byste optimalizovali vývoj svých aplikací na různé platformy a nevíte jak? Zajímá …
12.05 System Center Configuration Ma…
blogCZSK
V minulém díle jsme nainstalovali SQL Server, který je nutný pro běh Configuration Manageru. Dnes nás čeká instalace WSUS, což je produkt, j…
11.05 Hovory od křivého stolu (5)
blogCZSK
A máme tu další díl českého video seriálu Hovory od křivého stolu (5). Pro toto vydání HKS jsme se ponořili do hlubin naší budovy a natočili…
11.05 Pozvánka: Coding Bootcamp Meet…
blogCZSK
V rámci pražského Coding Bootcampu budete mít možnost se naučit vše, co potřebuje moderní webový vývojář. Abyste měli představu, co bude náp…
10.05 Zajímavé kurzy a videa–MVA a C…
blogCZSK
I tento měsíc vám přinášíme výběr nejzajímavějších videí, kurzů a záznamů konferencí. Veškeré kurzy pak naleznete na portálu MVA a výuková v…
10.05 Azure Site Recovery – VMWARE (…
blogCZSK
Připravil jsem pro vás sérii článků, zabývající se technologií Azure Site Recovery. Konkrétně v šesti na sebe navazujících článcích se dozví…
09.05 DataScript: akční nabídka škol…
blogCZSK
Připravili jsme pro vás nabídku školení On-Demand. A jaké jsou výhody? nižší cena učíte se z pohodlí svého domova nebo kanceláře přístup mát…
05.05 System Center Configuration Ma…
blogCZSK
V předchozím díle jsme si nainstalovali prerekvizity potřebné pro běh Primary Site Configuration Manageru a také jsme připravili doménu pro …
20.04 Odkazy z prohlížeče – 20.4.201…
atasoft
CodeProject Video Transcoding and Streaming on the fly – CodeProject – přímo v prohlížeči (?) A Sample Code Submitted for Senior C# …
11.04 Linq a pracovní pohovor
mstr
Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hlou…
08.04 Linq - k čemu použít Aggregate…
mstr
K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate …
27.03 Bezpečnost – věc veřejná
Poslední březnový den se v Praze uskuteční jednodenní konference o počítačové bezpečnosti SecPublica 2016. Jejím heslem je "securitas, res p…
16.03 Příklad na pohovor s programát…
mstr
Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkl…
15.03 IDisposable v příkladech
viga
Rozhraní IDisposable slouží k uvolnění “unmanaged” zdrojů. Nejčastěji to jsou různé objekty z Win32API (otevřené soubory, síťové spojení, GD…

ExtReact

T - 30. 5. 2017 17:31 - 3261 views

Veľmi zaujímavý ťah urobila Sencha, keď bez veľkého komunikovania zámeru zabalila svoj ExtJS framework do Reactu s podporou celého React stacku, čím vznikol nový framework ExtReact.

https://www.sencha.com/products/extreact/#app


Fanúšikovia Reactu získavajú slušný a konzistetný control framework a tooling od Senche. Na rozdiel od obchodného, z technologického hľadiska táto kombinácia postráda racio. To málo, čo React prináša má v sebe aj ExtJS napr. observable a to čo je v Reacte scestné, nerieši. Scestná je napr. "render" metóda v react komponente ala MVC server side, ktorý je v kombinácii s obervable jasný performance killer. Riešenie? Pochovanie frameworku tvorcami? Kdeže. Feature zvaná virtuálny DOM a predávanie tejto záplaty ako raketovej výhody frameworku. No nekúp to...virtuálny DOM. Ktorý framework sa takým niečím môže pochváliť, čo? 

Zaujímavé je aj licencovanie resp. cena, pretože zatiaľ je možné zakúpiť licenciu už pre jedného individuálneho developera(pri ExtJS je to 5+) a aj táto je lacnejšia ako pri ExtJS.

Používa niekto React?


Tomáš Zeman

Microsoft Certified Solution Developer

MCP ID: 2155385

Článkov: 0, Správičiek: 209, Príspevkov vo fóre: 2867, Príspevkov v blogu: 56, Bodov: 21315
Najaktívnejší č.: 2
Profil používateľa

Reakcie

# RE: ExtReact 30. 5. 2017 23:19:37 vlko

U nas ideme do angular 2. Na reacte je zla licencia a tiez neviem, ci rerender je ta spravna cesta, najma ako jedinou moznostou je mat view priamo v zdrojakoch.

# RE: ExtReact 31. 5. 2017 0:23:53 .

Niekto urcite ano: https://github.com/facebook/react/wiki/Sites-Using-React ;)

Trendy su ake su a zjavne to vidi aj Sencha: https://w3techs.com/technologies/comparison/js-extjs,js-react

https://trends.google.com/trends/explore?date=all&q=ext%20js,react%20js&hl=en-US

Co sa tyka performance, nevidel by som to tak zle, ani co sa tyka render metody, samozrejme clovek musi vediet co robi... (https://www.codementor.io/reactjs/tutorial/reactjs-vs-angular-js-performance-comparison-knockout,
https://medium.com/@esamatti/react-js-pure-render-performance-anti-pattern-fb88c101332f)

P.S: React na nijakom projekte nepouzil, ale cca pred tyzdnom som si pozeral knihy prave k Reactu a zvazoval ze si nejaku zadovazim... Osobne by som skor videl problem v moznych komplikaciach v licencovani ako v performance (http://react-etc.net/entry/your-license-to-use-react-js-can-be-revoked-if-you-compete-with-facebook).

# RE: ExtReact 31. 5. 2017 10:10:57 T

@vlko: Tiez sa cudujem, ze sa rozmohol react napriek angular 2 a paradoxne asi fakt dopomohla ta dobre marketovana bublina okolo virtual domu. A renderovanie v metode je to, comu rozumeju aj server renderovaci, ti sa hlbsie nezamyslaju, tak ako popularitu ziskal asp.net aj vdaka tomu, ze bol marketovany lahky prechod od tucnych appiek.(realne to bolo blbost, ale zafungovalo)

@dot
Niekto z miestnej komunity, trend je jasny, pisal som, ze obchodne to racio ma

Ale oni to tak kriticky s performance videli, tak vyrobili virtual dom.(je logicke, ze ked pri kazdej zmene property v observable musis prerenderovat cely komponent v dome, tak to nebude pri sofistikovanejsich obrazovkach kde mas vela "zivych" komponentov). Ak sa zamyslis na tymi testami, co vlastne porovnavaju a zoberies si pripad normalnej tucnej RIA aplikacie, tak zistis, ze vacsina tych porovnani je scestna a na konci dna je ale navacsi problem v designe, ktory reactom tvoris (z pohladu komplexneho UI), nie uz ta opatchovana performance.
A v podstate to co react ponuka je realne nejake riesenie observable(x rokov v Ext), nejaky komponent interface(x rokov a lepsi v Ext), templateovaci jazyk(x a lepsie v Ext) a nejaky virtualny dom, ktory nepotrebujes, keby bol lepsie vymysleny komponent design :-)

Na jednoduche veci je takmer jedno co pouzijes angular,react,ciste jquery,kendo,cisty javascript alebo lubovolny z tisicky jednoduchych js frameworkov....otazka je, co s komplexnou ria appkou a preco (ne)pouzit zrovna react.

# RE: ExtReact 31. 5. 2017 12:09:13 liero

Ja som robil v ReactJS dve nie velke appky.

Nevyhoda Reactu bola v tom, ze neexistoval pren poriadny control toolkit, co v mojom pripade nebol problem, kedze som si vystacil bootstrap controlkami.

Vyhoda Reactu je jeho brutalna jednoduchost a v pripade typescriptu to, ze aj Views vratane databindingov su type-safe a vyborne refaktorovatelne. To v mojom pripade bolo velmi dolezite, kedze to bola aplikacia, ktora sa menila dost zivelne.

S konkurencnymi frameworkami nemam skusenosti, akurat teoreticky poznam Angular2.

# RE: ExtReact 31. 5. 2017 12:38:20 T (anonym)

Ten problem s kontrolkami uz riesi spominany ExtReact, ale zase si nalejme cisteho vina, napriek progressu stale zaostavaju aj funkcne aj lookom za napr. KendoUI, aj ked sa to pomaly zlepsuje(aj kendo malo problem voci DevExpress dlho) a ja by som na verejny portal urcite Ext nepouzil.

Ako sa co pouziva a ci jednoducho - v tomto pripade je o style programovania, napr. v ExtJS vies 1:1 robit design ala React, mas na to vsetko (okrem virtual domu), otazka preco by si to robil, ked podporuje robustnejsiu a lepsiu architekturu pre vacsie projekty, aj podobne flexibilnu, to je len o tom, co do toho vnesies, aj s reactom vies urobit spagety...

Co som si vsimol realne je to, ze s ExtJS je tazky start zo psychlogickeho hladiska. Je to preto, ze to nie je "pozri si tieto dva jednoduche sample" a programuj, server render s templatingom poznas? Ano. Tak ides. Samozrejme take sample a styly existuju aj pri extjs, len to tak sencha nema nastavene a to ze sa tam da jedna vec spravit 20timi sposobmi tiez zo zaciatku nepomaha.

Inak, teraz rozmyslam, chcel by som vidiet funkcny grid s virtualizaciou v reacte resp. grid s vela riadkami, ale bez toho, aby boli obidene zakladne principy reactu.
Mne angular ako light fmwk pre verejne weby dava vacsi zmysel a uz len kvoly priatelstvu s KendoUI.

# RE: ExtReact 31. 5. 2017 12:43:06 liero

@T: mimochodom, virtualny DOM preberaju mnohe frameworky, napr Vue, koniec koncov aj v Angulare je to volitelna sucast.

Podla mna za uspechom Reactu su dve veci:
1. Angular2 je urceny pre TypeScript. Vies pisat aj cisty ES6, ale vraj to nieje ono - dokumentacia, podpora, nutia ta pouzivat globalne premenne, atd. No a kedze vacsina frontend developerov su MS hateri (dokonca aj v Microsofte :D ), tak to hned zavrhli.

2. JSX je podla mna genialny koncept. Kedze je to len ina syntax javascriptu, okamzite sa na neho objavilo velke mnozstvo toolov, typu linting, refactoring, intelli sense. Vid TypeScript s jeho TSX....
Je to napriklad jednoduchsie ako Angular, Knockout a podobne, no zaroven je to silnejsie, kedze mam k dispozicii cely javascript. Vyroba jednoducheho datagridu s filtrovanim a sortingom bolo naozaj iba copy&paste z bootstrap template, jeden foreach, dva-tri eventhandlere. A mal som to typesafe, s intelli sense pri databindingu atd.

# RE: ExtReact 31. 5. 2017 12:53:46 vlko

Pokial sa jedna o light js framework v dnesnej dobe by som siel skor to vue.js ako angular 1.
Ked som zvazoval, co pouzijeme pre nase admin UI, tak z fw okolo ktorych je hype (to aby sme nemali problem zohnat ludi a mat robotu so zaucovanim) teda vue.js, react, angular >=2 tak jednoznacne vysiel najlepsie angular 2. Je s tym roboty na zaciatku, treba nastudovat dokumentaciu, entry point je vyssie ako pri vue.js alebo angular 1, ale potom to uz ide jedna radost. Nie je problem zaclenit lubovolne kontrolky ale najma pretoze pouziva TS tak na konci cez angular.cli aot a tree shaking vybuildit app a vendor javascripty pre production app.

# RE: ExtReact 31. 5. 2017 13:57:04 T (anonym)

@liero: preberaju to tie frameworky, ktore su rovnako na figu vymyslene (z pohladu intranetu)resp. zamerane na izomorfiu (co by som bral ako argument pri poziadavke extremne crossplatform verejneho webu)
1. asi aj to hraje rolu
2. JSX - neviem co je na tom ine ako pri inych templatingovych js fmwk, vratane ext templatingu, podobaju sa ako vajce vajcu a je to tu 10 rokov...co je na tom genialne?...typesafe...no...specialne pri gride chcem podhodit datasource a neriesit okrem lokalizacie labelov, formatovania, filtrovanie, sortovanie je on/off nic viac. A nevidim rozdiel medzi ext gridom s jeho datastore a cimkolvek v reacte z hladiska jednoduchosti, len by som chcel vidiet pertformance pri full feature gride so 1000000 riadkami na clientovi




# RE: ExtReact 31. 5. 2017 14:02:54 T (anonym)

@vlko: angular 2 som myslel, vue som este popravde nepozeral. Dik, ze si sa podelil o skusenost. Pisete vsetko v TS? Inak to buildovanie nie je problem ani s reactom, len mam pocit, ze vsetko tooling je integrovany len do vs.code.

# RE: ExtReact 31. 5. 2017 14:05:41 T (anonym)

aj tak build po individualnych classach cez zavislosti pri sencha je uplne ina kava (ale toto tusim riesi napr. pre ExtReact resp. Sencha cmd)

# RE: ExtReact 31. 5. 2017 14:32:44 liero

@T:

"typesafe databinding" - mam na mysli nieco taketo (definicia stlpca v gride):

{
header: "First Name":,
template: row => row.Item.BiographicData.FirstName
}

co sa tyka templatingu: ved praveze react nema ziadny templating, to je na tom to genialne jednoduche :)

co sa tyka virtualizacie, tak podla mna presne na toto je react render najlepsi. Tam som paging nad 100 0000 riadkami spravil nejak takto:

Render()
{ return
[table]
{
for(var i = skip; i < skip + pageSize)
{
var row = Items[i];
[tr] .... [/tr]
}
}
[/table]
}



# RE: ExtReact 31. 5. 2017 16:51:59 T (anonym)

Aha, tak v tom pripade nechapem co myslis pod typesafe, toto je skor automaticke odvodenie datoveho typu.

React je cely o templatingu.

Ja pisesm o performance pri gride(full featured), nie ako to co najlahsie napisat s najprimitivnejsim gridom :-)

pri pouziti extjs aj extreact to vyzera takto, pozri a neverim, ze je to "jednoduchsi kod" aj ked porovnavam html table s full gridom
https://www.sencha.com/blog/react-and-ext-js-secret-besties/

a pri pouziti template alebo napisani vlastnej render metody to vyzera alebo moze vyzerat takmer rovnako :-)

# RE: ExtReact 31. 5. 2017 23:36:40 .

@T: Dema full featured gridov s velkym mnozstvom zaznamov:

http://zippyui.com/react-datagrid/#/examples/large-data-array (toto by mali byt zdrojaky https://github.com/stevelacy/react-datagrid)

http://adazzle.github.io/react-data-grid/examples.html#/one-million-rows

# RE: ExtReact 31. 5. 2017 23:57:23 T (anonym)

@dot dik, ale bez studia zdrojakov sa naozaj nedozviem, ako je to urobene interne (virtualizacia), nemam perf test, len z fyzikalnych zakonov je jasne, ze ak je to naozaj observable,virtual dom interne, tak to musi byt citelne pomalsie ako vyladena virtualizacia...navyse hentam nieje smooth scroll, vidim, ze na mojom telefone to laguje a to mam slusny cfg s edge browserom (viem, ze chrome je vacsi kamos)...

# RE: ExtReact 1. 6. 2017 8:40:13 liero

@T: ved ale kazdy grid, ktory bude robit virtualizaciu, to bude robit takto nejako. Nieje dovod, aby to bolo pomale, kedze react do toho vstupuje az vtedy, ked sa idu renderovat konkretne riadky. Vsetko ostatne je custom kod, ktory nema s reactom prakticky nic spolocne.

narychlo som nasiel toto: https://react.rocks/tag/DataTable, konkretne "Reactvirtualized hover"

Inak suhlasim, ze react nieje az taky vhodny pre klasicke formularove appky a uz vobec nie pre nejaky RAD, ale z inych dovodov. React podporuje iba jednosmerny databinding. Updatovanie stavu sa robi cez eventhandlery. Aspon mne sa nepodarilo to spravit nejako efektivne pri velkom mnozstve roznych inputov

# RE: ExtReact 1. 6. 2017 8:51:27 liero

@T: inak react naozaj nema ziadne templaty :)

mas iba render metodu ktora vracia uz rovno DOM.

render(){
return React.createElement('div',
React.createElement('h1', 'hello world');
}

vo vysledku uz nieje ziaden databinding ani nic podobne. Cize render je naozaj iba render. Skor nieco ako element factory. Vdaka tomu netreba vymyslat novu templatovaciu syntax, typu ng-model, ng-repeat, ng-show apod.

# RE: ExtReact 1. 6. 2017 11:33:04 T (anonym)

@liero: "takto nejako"...
react do toho vstupuje tak, ze ked to spravim podla patternu, mam mat "renderer" + observable + virtual dom(tipujem, ze hentie sample su tak naozaj urobene) a to musi byt nutne pomalsie(rezia cez virtual dom) ako optimalizovane prerenderovanie len vybratej casti resp. update hodnot, posuvanie pozicii pri smoth scrolle a pod.

Co sa tyka formularov...ono to nie je komplexny framework, tuto rovinu ani neotvaram, dorobit alebo najst si nieco, co vyzbiera a natlaci hodnoty do dto z formularovych prvkov nie je problem, malickost.

Teraz sa zamyslam, ze aku problematiku primarne pokryva...v podstate dobre komunikuju, ze je dobre uvazovat o stave nejakeho controlu a datovy atributoch, ktore su viazane na biznis logiku aplikacie ako o dvoch veciach.(ktore sa ciastocne prekryvaju). Oni riesia tu prvu vec primarne frameworkom. Otazka znie, kolko je takych situacii, kde toto je najvacsim problemom (facebook) v beznych firmach a ci je nie je lepsie zobrat bezne fmwk, ktory pokryva systematicky celu problematiku. Samozrejme, ako s kazdym ucelovym fmwk aj tu sa zrejme uz zapocala faza priliepania, ohybania a smerovania tam, kde povodne nebol urceny (nie vzdy to musi dopadnut zle, ale vacsinou ano :-)

# RE: ExtReact 1. 6. 2017 11:48:58 T (anonym)

@liero: bezne clovek asi pouziva babel a jsx, vratane teba vyssie, mylim sa? Hore sa hladkach po bruchu aky je jednoduchy zapis a das template a tu prepnes na createElement. A to pises tak ako si napisal teraz, tak si naozaj tukam na celo. Ze na nakonci je pod tou render metodou/templatnou vykompilovane nieco ine je uplne prirodzene aj to, ze sa mozes vyhnut templatingu a pisat si napriamo createElementy. Nerozumiem zmlyslu a logike toho argumentu. Databinding detto. div{bindme}div (vratane vymyslania novej syntaxe)

"Vdaka tomu netreba vymyslat novu templatovaciu syntax"
OMG, ale to Ta nenuti vymyslat ani napr. pri ext resp. vacsine fmwk, akurat sa napises viac, mozes pouzit string builder, mozes buildovat dom podobne ako tu....fakt netusim, kam tym mieris...ale bezne pouzijes templates, tak ako v exte, tak ako v reacte...lebo je to efektivnejsie a prehladnejsie...ci?

Extremny priklad...aj transformacia XML sa da napisat v kode a v .nete kadejako ale zvacsa je xslt naozaj najefektivneji pristup aj ked vyzaduje znalost "novej syntaxe" problemovo/domenovo orientovaneho jazyka.

# RE: ExtReact 1. 6. 2017 12:43:58 liero

@T: neustupim. React nema templating. CreateElement a JSX je len iny zapis toho isteho, ale to nieje template. Nechce sa mi o tom viac hadat. Zrejme mame rozdielnu definiciu templatu.

Co sa tyka rychlosti, tak v praxi je React velmi rychly. Mne sa praveze Sencha zda hrozne pomala.


Prve vyrenderovanie je v Reacte velmi rychle. Co sa tyka updatovania, tak niekedy je to pomalsie ako "optimalizovane prerenderovanie len vybranej casti". Ale ved aj v Reacte prerenderovavas len vybranu cast - komponentu.

Ano, su pripady, ked updatovanie VDOM je neefektivne, napriklad Drag&Drop, ale na to ma react svoje postupy, kde obchadzas VDOM.

# RE: ExtReact 1. 6. 2017 14:46:47 vlko

@T suhlasim s liero. React nema templaty, jeho vyhoda je, ze generujes pri kazdom render priamo novy DOM popisne objekty, shadow dom na pozadi paruje a generuje zmeny, mimochodom Angular >=2 v AOT kompilacii robi nieco podobne pre skompilovany template. Co sa tyka .jsx, teda specialnej predkompilacnej veci, ktora generuje .js, ktory sa uz horsie citata ako template like .jsx subory, ten pre tvorbu react app naozaj nepotrebujes.
add .jsx: mne prave tie inline .jsx template nevyhovuju, pre vacsinu veci nepotrebujeme kontrolky a gridy su obycajne so strankovanim, sortovanim, nepresuvas stlpce a podobne enterprise serepeticky (co vyuzuje 0.5% uzivatelov), lebo to nepotrebujeme, takze u nas su template dost velke a taky kod vyzera dost zle, lebo tam byva dost UI depend logiky aby sa tie formy dobre vypisovali.
add "pisete vsetko v ts": momentalne robime v Angular 2 nove rozhranie, prerabame dost zle pouzitelne stare veci, ktore mali edit casti postavene na Angular 1, tam uz vsade TS, main reusable nastavbove .js nad existujucimi vygenerovanymi tabulkami sa ale stale kodia v .js, asi to uz nikto nebude prepisovat, len udrzovat. Nas primarny vystup je html, kvoli google indexovaniu, takze nie je dovod menit.

# RE: ExtReact 1. 6. 2017 19:17:16 T

@vlko: cize tvrdis, ze toto nie je templating? [ano/nie]
Render()
{ return
[table]
{
for(var i = skip; i < skip + pageSize)
{
var row = Items[i];
[tr] .... [/tr]
}
}
[/table]
}

Cize ani razor v asp.net nie je templating?


ano a robi cosi podobne ako...extjs tiez uz 10 rokov akurat bez virtual domu, ktory tu nie je potrebny.
My sa nebavime o tom, ci je nieco predkompilovane, ale o tom, ci ma alebo nema templating(lierova vyhrada vyssie) a realne ho ma(jsx) aj ked o uroven vyssie ako napr. extjs...(pri asp.net mvc si mozes vybrat vlastny engine a asi vies co compiler generuje).
Buildovat dom si mozes aj cez JQuery aj cez ExtJS v com spociva vynimocnost tohoto pristupu? Ale v reacte to nebudes robit ani Ty, ani Liero bezne a pouzijete .jsx. Mozeme diskutovat o vyhode toho ktoreho pristupu, no problem. Compile time templates su lepsie z hladiska perf. runtime z hladiska velkosti js.

jsx) Co ti brani vynat tie templates von?

ts) dik, ono je dobre ze pises, co riesis, lebo ja sa musim zaoberat enterprise serepetickami :-) ty mas iny focus

# RE: ExtReact 1. 6. 2017 19:46:56 T

@liero: ach tie tvoje konstrukcie ;-)

"React nema templating. CreateElement a JSX je len iny zapis toho isteho"
pozri odpoved vlkovi

"Co sa tyka rychlosti, tak v praxi je React velmi rychly. Mne sa praveze Sencha zda hrozne pomala. "

ma to dva problemy 1) "zda sa" 2) nepises scenar...bavime sa o gride s virtualizaciou?

"Prve vyrenderovanie je v Reacte velmi rychle."
To je hodnotna vec. Ok je rychle...v porovnani s cim? Je rychlejsie ako renderovanie bez virtual domu? Ako innerHtml? Ako co?

"Ano, su pripady, ked updatovanie VDOM je neefektivne"

A to su vsetky pripady, kedy nemas dovod preskladavat velke plochy nanovo a nanovo pri zmene hodnoty, co je vacsina webov aj intranetov.

Jednoducho hladate vyssi zmysel vo veci, ktora nie je feature ale zaplata. Rovnako ako ju hladaju tvorcovia Reactu. React je uzasny pribeh a malo by byt poucenim, ako lahko sa zo zleho patternu stat trend...


# RE: ExtReact 1. 6. 2017 19:48:18 T

A zlemu patternu potom treba sadu dalsich patternov, aby nebol az taky zly ;-)

# RE: ExtReact 2. 6. 2017 9:04:04 vlko

@T pre mna je template system zalozeny na textovom zapise, ktory pomocou nejake template engine je konvertovany na nativny kod (ci uz je vysledkom dom, component tree, cokolvek). V tom ponimani .jsx obsahuje template, ale nativny react zapis nie, v render metode mozes mat if, pouzivat temp premenne, proste pises nativny kod, ktory vracia rovno nejaky component tree, ten sa mapuje na VDOM a nasledne sa z neho generuju v tick evente updates.
Tento model ma svoje vyhody, napr nepotrebuje two way binding, pretoze event vyvola zmenu modelu, nasledne rerender a o zmenu sa spatne postara VDOM. To znamena, ze tvoja biznis logika sa nijak nemusi starat o to ako je to namapovane na UI. Co sa celkom dobre nehodi na business level app, ktore maju napr validacie nad inputmi, lebo bud je tato logika sucastou kontrolky a nemas globalny error stav, alebo na to musis urobit nejaku formu pridaneho valid modelu, ktory uz nie je sucastou React, ale musis to riesit vacsinou pub/sub.
Ma to aj dobre stranky, napr tym ze do render vzdy vstupuje nejaky "stav" objektu sa da celkom easy spravit undo na lubovolny predchadzajuci stav, len posles do render ten predchadzajuci stav.

Tak to vidim ja, ale mozno sa mylim, je to celkom pekny pattern, co sa tyka zobrazovania dat, celkom nevyhovujuci ak nad model potrebujes nieco ako dalsi level metadat, teda napr validaciu modelu.

# RE: ExtReact 2. 6. 2017 9:49:57 T (anonym)

"ale nativny react zapis nie"
V tom istom zmysle, ako "nativny zapis" neobsahuje aspx alebo razor.
Proste mozes si volat metody a buildovat output sam.(dostat ten isty vysledok).
Detto ako hoci pri extjs xtemplate.compile (tipujem, nikdy som sa nepozeral dnu), akruat ze to sa udeje na klientovi, princip zostava.
Jednoducho je to templating a snazis len poukazat na nejake rozdiely vo forme. Je take tazke to uzatvorit?

"Tento model ma svoje vyhody, napr nepotrebuje two way binding, pretoze event vyvola zmenu modelu, nasledne rerender a o zmenu sa spatne postara VDOM"
:-) ten "model" nema ambiciu riesit 2 way binding to je proste fakt, riesi specificku problematiku zobrazovania, vid uvaha vyssie v prispevku pre liera. A ak je to vyhoda, tak voci comu? Popisal si ako to funguje, ale ok, to asi vieme vsetci.

(2 way binding riesi napr. mobx a zase je to len kopia niecoho, co je davno v extjs..."store")

" To znamena, ze tvoja biznis logika sa nijak nemusi starat o to ako je to namapovane na UI"
To sa ani nema, toto je vec separacie prezentacnej logiky a na tuto separacia nepotrebujes react a nie je ani nijako vynimocny. Vynimocne je mozno to, ze jeho tvorcovia otvorene pomenovali ze existuju dva problemy stav UI a datove atributy. To je presne ten problem, ako pri MVC vlne, ze vtedy niektori prvykrat pochopili, ze ma zmysel separovat biznis a prezentacnu logiku ale zaroven uverili, ze to je nejaka implicitna vyhoda mvc frameworku.
Toto su presne take iste uvahy.
vyuzivanie pub/sub na klientovi zase nieje vynazel alebo implicitna vlastnost reactu, je to o rozhodnuti, do akej miery chces mat loosely coupled riesenie a reactaci ale v tomto pripade skor z nudze cnost ta vedu k loosely. Pricom v exte si mozem rozhodnut sam, aky pristup zvolim.
(ciastocne som to riesil tu v 2011 -> http://blog.vyvojari.sk/tomas/archive/2011/11/23/interakt-237-vne-javascript-gui.aspx cast Main Presentation Model)
Undo sa da spravit easy kedykolvek a kdekolvek, su na to 30 rokov stare patterny, ktore platia. A to ze vies urobit undo a do render vstupuju udalosti je zase z nudze cnost, oni nemali inu moznost ako to urobit a preto sa dopracovali k "reaktivnemu"(novy nazov je dokazom toho, ze je za tym znovuobjaovanie davno objavenho)

"mozno sa mylim"
o myleni sa tazko hovorit, podla mna o tom zle rozmyslas. Ale zaver je OK, pattern je to "pekny" az na jeho zviazanie s "render()". A bohuzial ono je zjavne vniklo naopak...na zaciatku vsetkeho bol komponent s render()....a potom creativa, kde znovuobjavili nejake principy, ktore im to umoznili "zachranit".



# RE: ExtReact 2. 6. 2017 12:11:16 liero

@T: oni to volaju one-way flow. Zmenis stav kontrolky, zavola sa render. Nic viac. Na prvy pohlad sa to nezda, ale vdaka tomu je aj framework aj vyvoj brutalne jednoduchy, povedal by som az primitivny. Ta jednoduchost je podla mna to, co ludi ocarilo. No ako som sa sam presvedcil, za tu jedoduchost potom zaplatis niekde inde.

Treba si to vyskusat, lebo takto to je ako vyberanie si auta na zaklade papierov. Kym do toho nesadnes, tak nevies.


# RE: ExtReact 2. 6. 2017 16:23:14 T (anonym)

a je primitivny tak ako v inych frameworkoch a otazka je, ze o akom type appiek sa bavime, taky isty styl pisania appky viem zvolit aj pri extjs, mam na to vsetko.

Ze to ludi ocarilo, to chapem a uz som pisal, ze do hlavicky cloveka, ktory pisal 10 rokov server render weby to zapada lahko...jj, zaplatis, ale tiez mas kadejake dalsie zaplaty (mobx), ktorymi si vies pomoct. Ak mas framework o jednom patterne (react, model2 mvc) musis vediet, kde su jeho hranice a zaroven to neznamena, ze podobny pattern sa neda implementovat v komplexnejsom frameworku ak potrebujes.

:-) musim vediet aj bez toho, uznavam ze je to lepsie, mam respekt, ale verim si v tomto a maly challange mam za sebou, to co vyzeralo "brutalne" jednoducho a kuzelne v react som napisal v ext a vyzeralo rovnako kuzelne :-) naopak by to uz neplatilo.


Pridať reakciu

Titulok:
Meno:
Url:
Koľko je 22 + 4?
(ochrana proti spamu)
Komentár:

Najaktívnejší užívatelia
1. 37750 b. photo vlko
2. 21315 b. photo T
3. 15955 b. photo spigi
4. 15450 b. photo Anonymous
5. 11120 b. photo dudok
6. 9355 b. photo Liero
7. 6885 b. photo siro
8. 6245 b. photo slavof
9. 5355 b. photo duracellko
10. 4445 b. photo xxxmatko