Vývoj webových aplikací pro nenáročné

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #45 kdy: 26. 05. 2021, 15:57:21 »
Nechapu, jak nekdo muze preferovat Javu pred modernim Javascriptem.

Myslim, ze tohle muze nechapat jenom nekdo, kdo o Jave nic nevi.
Se skripenim zubu je pouzitelny Typescript, prave proto, ze z Javascriptu dela Javu rizlou C#.

Angular 2 uz na TS jede, Vue 3 taky, React uz to taky podporuje, i kdyz jeste z compatibility duvodu podporuje holy JS


Re:Vývoj webových aplikací pro nenáročné
« Odpověď #46 kdy: 26. 05. 2021, 15:58:57 »
Se skripenim zubu je pouzitelny Typescript, prave proto, ze z Javascriptu dela Javu rizlou C#.

to ani nahodou, typovy system Typescriptu je mnohem pokrocilejsi, jazyk celkove je mnohem expresivnejsi. Muzete ho pouzivat i v cistem JS, jak jsem psal

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #47 kdy: 26. 05. 2021, 16:01:34 »
Co myslis pod "moderni javascript"
jako javascript obecne, protoze vznikl relativne "nedavno"
nebo nejakou ECMA?

Protoze ja porad jeste musim pracovat na platforme, co podporuje jenom ECMA 5 a vetsi shit proste neni.
Takze ja v javascriptu delam a prave proto ho intenzivne nenavidim.
Ale ja se v mladi ucil Pascal a assembler, tak ja vam mladym uz nerozumim.

Jinak co si myslet o jazyku, kde vsichni reknou, "ono kdyz se to umi a kdyz pouzijes TypeScript, tak se to osefuje".
tak jazyk 1 potrebuje jazyk 2, aby byl seriozneji pouzitelny (tim nemyslim vytvoreni zeleneho tlacitka na www strance"


Nechapu, jak nekdo muze preferovat Javu pred modernim Javascriptem.

modernim javascriptem myslim to co podporuji dnesni prohlizece a nodejs. Typescript nepotrebujete, typove anotace jdou psat do komentaru. Typovy system je mnohem mocnejsi nez ten v Jave.

Nechces zacit radit lidem od Angularu a Vue?
Ti pomylenci switchli na TS.

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #48 kdy: 26. 05. 2021, 16:20:48 »
Ja taky z javascriptu bliju a pro ruzne webove udelatka pouzivam primefaces.org - variantu pro JSF2.

Muzes ukazat priklad, jak s tim udelam tabulku, ktera se mi bude kazdou 1s aktualizovat novymi zaznamy z backendu? A pak bych rosil jeste jednou tu samou tabulku, ktera se mi aktualizuje nikoliv periodicky, ale az kdyz na backendu data zmenila, tzn. vyuziva to treba Websocket.

Tak jestli jsem te tim prilis nezaskocil, tak diky.

Na periodicke pollovani je tu primefaces Poll
http://www.primefaces.org:8080/showcase/ui/ajax/poll.xhtml?jfwid=90af5

Ne webfoctek standardni JSF2.3 <f:websocket>
https://stackoverflow.com/questions/3787514/how-can-server-push-asynchronous-changes-to-a-html-page-created-by-jsf/49852105#49852105

Ve starych Primefaces do verze 6.2 byla jejich interni implementace websocketu, tu odstranili, kdyz to zacala podporovat primo JSF


Sam jsem to nikdy nepouzil, nepotreboval jsem
Ma to fungovat velice jednoduse, ze na urvni XHTML page se websocket notifikace zachyti jako AJAX event, na ktery pripojim update prislusne komponenty, napr <p:datatable> se zobrazenim dat

Divam se na to a nechapu, v cem si pomuzes oproti Vue.js. Vzdyt budes mit napsane vesmes to same. Akorat ze kolem nebudes mit tu tucnou vrstvu javovske abstrakce. A ten poll - umi to vubec upadovat i tabulku, tzn. aplikovat ty data jako foreach template?

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #49 kdy: 26. 05. 2021, 16:30:02 »
Nechces zacit radit lidem od Angularu a Vue?
Ti pomylenci switchli na TS.

Myslel jsem typovy system typescriptu ve srovnani s Javou. Ale kdyz chcete srovnavat TS s cistym JS, co umi TS navic oproti https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html ?
« Poslední změna: 26. 05. 2021, 16:31:35 od A.P.Hacker »


Re:Vývoj webových aplikací pro nenáročné
« Odpověď #50 kdy: 26. 05. 2021, 16:42:29 »
Ja taky z javascriptu bliju a pro ruzne webove udelatka pouzivam primefaces.org - variantu pro JSF2.

Muzes ukazat priklad, jak s tim udelam tabulku, ktera se mi bude kazdou 1s aktualizovat novymi zaznamy z backendu? A pak bych rosil jeste jednou tu samou tabulku, ktera se mi aktualizuje nikoliv periodicky, ale az kdyz na backendu data zmenila, tzn. vyuziva to treba Websocket.

Tak jestli jsem te tim prilis nezaskocil, tak diky.

Na periodicke pollovani je tu primefaces Poll
http://www.primefaces.org:8080/showcase/ui/ajax/poll.xhtml?jfwid=90af5

Ne webfoctek standardni JSF2.3 <f:websocket>
https://stackoverflow.com/questions/3787514/how-can-server-push-asynchronous-changes-to-a-html-page-created-by-jsf/49852105#49852105

Ve starych Primefaces do verze 6.2 byla jejich interni implementace websocketu, tu odstranili, kdyz to zacala podporovat primo JSF


Sam jsem to nikdy nepouzil, nepotreboval jsem
Ma to fungovat velice jednoduse, ze na urvni XHTML page se websocket notifikace zachyti jako AJAX event, na ktery pripojim update prislusne komponenty, napr <p:datatable> se zobrazenim dat

Divam se na to a nechapu, v cem si pomuzes oproti Vue.js. Vzdyt budes mit napsane vesmes to same. Akorat ze kolem nebudes mit tu tucnou vrstvu javovske abstrakce. A ten poll - umi to vubec upadovat i tabulku, tzn. aplikovat ty data jako foreach template?

V JSF2 se zadny foreach template nikam nestrka, zapomen na generovani HTML kodu.

Udela se XHTML deklarace, ktera na stranku nastrka widgety a propoji je s backing beanem. Npriklad pro tabulku backing bean poskytne List<> beanu, atributy beanu obsahuji jednotlive sloupce.

viz nejjednodussi priklad hole tabulky
https://www.primefaces.org/showcase/ui/data/datatable/basic.xhtml?jfwid=f505c

Kód: [Vybrat]
<h:form>
    <div class="card">
        <p:dataTable var="product" value="#{dtBasicView.products}" id="testtable">
            <p:column headerText="Code">
                <h:outputText value="#{product.code}" />
            </p:column>

            <p:column headerText="Name">
                <h:outputText value="#{product.name}" />
            </p:column>

            <p:column headerText="Category">
                <h:outputText value="#{product.category}" />
            </p:column>

            <p:column headerText="Quantity">
                <h:outputText value="#{product.quantity}" />
            </p:column>
        </p:dataTable>
    </div>
</h:form>


Tahle deklarace si z named backing beanu "dtBasicView" vezme List<> beanu s daty a zobrazi je v tabulce.
Ona komponenta ma svoje id="testtbl" (v origo examplu ani neni, pridal jsem), pokud nejakym eventem zavolas update pro tento id - jenom tato samotny datatable widget se updatuje bez reloadu stranky.
A je uplne jedno, jestli ten event vedouci na update idu "testtbl" pristal ze zmacknuti tlacitka, z periodickeho pollu, nebo z websocketu.

Takze jako koder udelas vyse popsanou XHTML dekraraci, udelas primitivni backing bean, co vraci List<> a hotovo.

V onom odkazu jsou i zdrojaky onoho backing beanu a dokonce i fake servica, co pro bean generuje data.

Nikde neni ani radek javascriptu. (I kdyz mas samozrejme moznost i s tim pracovat)


Mlocik97

  • *****
  • 830
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Vývoj webových aplikací pro nenáročné
« Odpověď #51 kdy: 26. 05. 2021, 16:42:59 »
Všechny ty rendery, state atd. jsou ale právě to, proč si člověk (pokud k tomu nemá vyslovený odpor) ten React vybere - unidirectional data-flow. Sice jsem ve Svelte nepsal, ale podle ukázky co posíláš mi všechno to bindování silně připomíná Angular 1 (od kterého mj. kvůli tomuto všichni zdrhali) - jak potom vytrasuji událost, která mi vyvolala překreslení? Nebo se pletu a debugguje se to jedna báseň?

Robíš si srandu? To je práve a hlavne na Svelte tá najlepšia vec... Ja práve nechápem ako môže niekto mať rád JSX, čo je proste chaos.
...

áno, pleteš se a debuguje sa to jedna báseň... a ten data flow sa dá kontrolovať úplne v pohode...

Mlocik97

  • *****
  • 830
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Vývoj webových aplikací pro nenáročné
« Odpověď #52 kdy: 26. 05. 2021, 16:46:10 »
tak jazyk 1 potrebuje jazyk 2

nepotrebuješ TS, btw. a tento argument, tak to môžem nadávať na Kotlin a Scala čo potrebuje Javu,... C++ čo je vlastne "C" s pridaným ++,... a môžem pokračovať až nakoniec dôjdeme že všetci by sme mali používať Assembler?
« Poslední změna: 26. 05. 2021, 16:54:21 od Mlocik97 »

Mlocik97

  • *****
  • 830
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Vývoj webových aplikací pro nenáročné
« Odpověď #53 kdy: 26. 05. 2021, 16:49:07 »
Nechapu, jak nekdo muze preferovat Javu pred modernim Javascriptem.

Myslim, ze tohle muze nechapat jenom nekdo, kdo o Jave nic nevi.
Se skripenim zubu je pouzitelny Typescript, prave proto, ze z Javascriptu dela Javu rizlou C#.

Angular 2 uz na TS jede, Vue 3 taky, React uz to taky podporuje, i kdyz jeste z compatibility duvodu podporuje holy JS

Práve TypeScript nie je použitelý práve preto že z použitelného JS to robí Javu/C# "moderný OOP" humus... čo sám autor OOP odsudzuje Javu.

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #54 kdy: 26. 05. 2021, 16:56:16 »
TS lze pouzivat jako linter, transpilace neni nezbytna

Mlocik97

  • *****
  • 830
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Vývoj webových aplikací pro nenáročné
« Odpověď #55 kdy: 26. 05. 2021, 17:13:33 »
Všechny ty rendery, state atd. jsou ale právě to, proč si člověk (pokud k tomu nemá vyslovený odpor) ten React vybere - unidirectional data-flow. Sice jsem ve Svelte nepsal, ale podle ukázky co posíláš mi všechno to bindování silně připomíná Angular 1 (od kterého mj. kvůli tomuto všichni zdrhali) - jak potom vytrasuji událost, která mi vyvolala překreslení? Nebo se pletu a debugguje se to jedna báseň?

áno, pleteš se a debuguje sa to jedna báseň... a ten data flow sa dá kontrolovať úplne v pohode...

btw. ten unidirectional data-flow je možný aj vo Svelte úplne v pohode a to s omnoho menej boilerplate kódu a stále elegantnejšie: https://svelte.dev/repl/6190bbbe098f4556aa9eddcfa8d4a77d?version=3.38.2

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #56 kdy: 26. 05. 2021, 18:00:06 »
Rad bych zde poznamenal, ze muj dotaz na to, jak pouzivat Vue bez transpilace a NPM, se ponekud zvrhnul v hadky ohledne vseho toho, co s sebou privlece az pouzivani NPM.

Ja jako nenarocny uzivatel web technologii vubec typescript neresim, protoze mym jednoduchym zpusobem se ani vlastne neda pouzit. Pouzivam cisty Javascript a tim ze nemam webpack tak mam o mnoho starosti min.

A tady jsem nasel knowhow na Vue app bez NPM:

https://dzone.com/articles/vue-js-application-without-build

A tady je k tomu repozitar:

https://bitbucket.org/letsdebugit/minimalistic-vue

Je to moc hezky udelane - presne to jsem chtel. A je to v ES6, ani nepotrebuju Babel. Doporucuje kazdemu se na to podivat.

Mozna to nebude fungovat v nejakych starych browserech, ale to me pro me potreby moc nezajima.
« Poslední změna: 26. 05. 2021, 18:03:41 od registrovany123 »

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #57 kdy: 26. 05. 2021, 21:09:13 »
Což ovšem znamená, že musíte použít plnou verzi Vue i s kompilátorem. Přidá to 30 kB JS navíc a nějaký čas to kompilaci.

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #58 kdy: 26. 05. 2021, 22:24:17 »
Což ovšem znamená, že musíte použít plnou verzi Vue i s kompilátorem. Přidá to 30 kB JS navíc a nějaký čas to kompilaci.

No tak budiž, mě to stačí, já internetové weby nedělám, a na intranet je zbytecne se takovyma vecma zaobirat.

Re:Vývoj webových aplikací pro nenáročné
« Odpověď #59 kdy: 26. 05. 2021, 22:37:19 »
A kdybych delal, tak Vue mi to umozni naskalovat pro webpack.