Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Mirek Zvolský 17. 04. 2020, 10:02:07
-
Ahoj.
Chci začít nějaký nový vlastní hobby projekt, backend v klasice, frontend javascript - jen minimalisticky.
TypeScript - zásadně ne (nespamujte prosím na toto téma).
React, Vue - něco bych chtěl do budoucna, snad Vue, ale teď nedokážu najít čas se to naučit.
Takže asi jen jQuery a otázka k modernizaci je:
1) spouštět lokální nebo CDN/cloudovou verzi js knihoven?
2) je vhodné jít přes Babel a pracovat v nějaké moderní verzi js/ecmascriptu? Ve které? - což mi možná vyřeší i některou z následujících otázek?
3) jak nejlíp pracovat se šíleným javascriptovským this? Tady asi odpověď znám, jestli mě nenasměrujete ještě líp: (function() {..}).bind(this)
4) jak je dnes moderní a perspektivní js do html připojit? Jednotlivé js? Nebo bundlovat do velkého souboru a čím? Jak pracovat s externími jmény proměnných místo prastaré prasárny (jména z dříve spuštěných skriptů přístupná jako window.xxx). Používá se import? Nebo require?
Díky za tipy.
-
Myslím že nebude ani třeba používat Babel, když ho snad všechny prohlížeče od roku 2018 podporují, i Node má podporu pro ECMAScript 6 (minimálně pro většinu věcí).
https://www.w3schools.com/js/js_es6.asp
-
Ma dnes cenu pouzivat jquery? Vsechny prohlizece podporuji queryselektory, fetch api ...
-
K tomu modernímu JS a Babelu - téměř všechny prohlížeče podporují přinejmenším ES2016, včetně obskurních jako Silk (ten u nás moc rozšířený asi není, ale jinde ano). Jediný nepodporující, na který jsem v poslední době narazil, je Safari na iOS 9, což jsou některé starší iPody, ale to už je taky předpotopní.
-
V čem budete dělat ten backend? Mohl byste zkusit WebAssembly jako front end.
-
3) jak nejlíp pracovat se šíleným javascriptovským this? Tady asi odpověď znám, jestli mě nenasměrujete ještě líp: (function() {..}).bind(this)
Dají se použít arrow functions. Tj. místo function (args) { body } a bindu psát args => { body }.
Imho je ale lepší to "šílené javascriptovské this" (resp. to okolo něj) pochopit. Super je série You Don't Know JS, pokud už není přečtená. :)
-
Kodim v React/Vue + JS/TS (podla projektu) a tento prispevok mi pride ako keby som sa ocitol 3 roky dozadu...
- za posledne 3 roky som nenapisal snad ani jediny `this`, pred 4 rokmi (ked sa ES2016 este volal ES6) uz sme novych programatorov ucili, ze ak nemaju specialny dovod tak nerobit, vsade pouzivat arrow functions a tam je this porieseny ( () => {..}` je ekvivalent (function() {..}).bind(this) )...
- prave na hobby projekt mi pride ze je idealna moznost vyskusat nejaky novy framework..., react som sa ucil na hobby projektoch ked som robil s jQuery 5 rokov dozadu.., angular a vue na hobby projektoch za posledne 2-3 roky...
no a k tvojim otazkam (zober si z nich co chces)
1. ak viac cenis rychlost ako bezvypadkovu sluzbu, tak produkcny build CDN, na lokalny development urcite lokalne kopie nech nemas problemy kodit ak si na pomalej wifi / vo vlaku / whatever..
2/4a. prekladac / bundler podla vybrateho frameworku.. create-react-app, vue-cli alebo angular-cli v dnesnej dobe uz riesia vacsinu veci za teba a manualne setupovat veci si potrebujes iba ak potrebujes nieco nestandardneho nastavit..
2/4b. ak chces fakt ist bez frameworku, a nepotrebujes podporovat IE11 v dnesnej dobe vsetky najpouzivanejsie browsre (firefox, chrome, safari, edge) podporuju ES moduly a rozumnu podmnozinu ESnext, takze vacsinou nepotrebujes babel ani bundler a staci ti priamo pouzivat importy..
3. () => {} namiesto (function() {}).bind(this), idealne nepouzivat this vobec...
-
jQuery bych už dnes nepoužíval. Není k tomu důvod, máme lepší nástroje. Šílenému this se vyhnete tím, že budete používat ES2016 a arrow funkce. Používejte importy – je to součástí standardu, na rozdíl od require to tedy má budoucnost. Bundler použijte nejlíp podle toho, co budete mít ve stacku s frameworkem. Teda nejlepší by bylo nepoužívat žádný bundler, už nějaký pátek tu máme HTTP/2. Jenže autoři bundlerů vám budou tvrdit, že i s HTTP/2 jsou potřeba (nejsou) – přišli by o práci. Takže je dnes těžké nakonfigurovat celý stack tak, abyste tam měl Babel, minifikaci apod., ale na rozdělení do souborů aby se nesahalo.
-
Použijte Svelte/Sapper, je to jednoduché ako jQuery, a zároveň rýchlejšie, kvalitnejšie. Popravde Svelte/Sapper sa naučíte za 40 minut úplne v pohode, a to môžete byť úplny začiatočník vo frameworkoch.
-
Vážně je nutné ten JavaScript mít?
Zkuste popřemýšlet zda by stálo zato používat RubyOnRails, protože v nich vyřešíte jak backend tak frontend a je to mocný nástroj.
-
Vážně je nutné ten JavaScript mít?
Zkuste popřemýšlet zda by stálo zato používat RubyOnRails, protože v nich vyřešíte jak backend tak frontend a je to mocný nástroj.
Jak funguje RubyOnRails v prohlížečích?
Za mne by mohla být celá webová technologie v Lispu, protože je dokonalým jazykem, kterému ostatní nesahají ani po sériové rozhraní. Jenže v prohlížečích není Lisp, ale Javascript.
-
otázkou je přesně chce tím javasciptem řešit, protože hodně těch pozlátek se dá řešit pomocí css
jinak Rails jsou na weby naprosto parádní
-
- za posledne 3 roky som nenapisal snad ani jediny `this`
To spíš vypovídá o práci než o `this`.
uz sme novych programatorov ucili, ze ak nemaju specialny dovod tak nerobit, vsade pouzivat arrow functions a tam je this porieseny ( () => {..}` je ekvivalent (function() {..}).bind(this) )...
Proč? Zvlášť pokud jsi `this` tři roky nenapsal, tak moc nedává smysl to řešit...
pred 4 rokmi (ked sa ES2016 este volal ES6)
Tady něco nesedí.
-
Babel a TypeScript je 99% to isté - sú to transpilery novšieho EcmaScriptu do staršieho. Akurát TS má pár vychytávok ktoré babel zatiaľ nemá a Babel sa dá zase rozšíriť pomocou pluginov.
JQuery je najhoršia javascriptová knižnica s akou som kedy robil. Je to knižnica ktorá ide proti filozofii JS, ale keď to niekomu vyhovuje a miluje špagety jeho vec.
-
Babel a TypeScript je 99% to isté
TypeScript je programovací jazyk. Babel je nástroj, transpiler, který umí překládat novější verze JavaScriptu a mimo jiné i TypeScript do starších verzí JavaScriptu (a pro starší prohlížeče).
-
- za posledne 3 roky som nenapisal snad ani jediny `this`
To spíš vypovídá o práci než o `this`.
uz sme novych programatorov ucili, ze ak nemaju specialny dovod tak nerobit, vsade pouzivat arrow functions a tam je this porieseny ( () => {..}` je ekvivalent (function() {..}).bind(this) )...
Proč? Zvlášť pokud jsi `this` tři roky nenapsal, tak moc nedává smysl to řešit...
pred 4 rokmi (ked sa ES2016 este volal ES6)
Tady něco nesedí.
co ti nesedi? 4 roky dozadu 2016 sme pisali react classy a pouzivali Babel, vsetky veci ktore nesli v browseroch bez Babelu sme volali ES6 lebo ziadne novsie pomenovanie vtedy nebolo, niektore z nich su dnes v ES2016...
niekedy v 2017 (3 roky dozadu) sme zacali nove komponenty pisat funkcionalne a zacali sme s HoC/recompose patternom, vtedy uz "this" takmer nebolo treba (ano boli pripady, kedy hej, ale vo vacsine pripadov...)
-
Babel a TypeScript je 99% to isté
TypeScript je programovací jazyk. Babel je nástroj, transpiler, který umí překládat novější verze JavaScriptu a mimo jiné i TypeScript do starších verzí JavaScriptu (a pro starší prohlížeče).
Ajajajajaj už tu začína - krásna ukážka gatekeepingu.
-
JQuery je najhoršia javascriptová knižnica s akou som kedy robil.
Tak to jsi mlaďoch :-)
jQuery je poplatná době. Ve své době to byla špička největší. Od té doby se změnilo spoustu věcí. Buď fér.
Je to knižnica ktorá ide proti filozofii JS, ..
Silná slova bez důkazu :-P
-
Penetrace jQuery je dodnes ohromná. Pro drobné věci stačí pár řádků v jQuery, který je na webu pravděpodobně stejně už načtený. To jen svědčí o jeho úspěchu. jQuery otevřel cestu dalším nástrojům. Jinak pro nové věci mi přijde vhodný Vue.js - minimalistický a rychle naučitelný. Svelte/Sapper jsem neznal, díky.
-
Ajajajajaj už tu začína - krásna ukážka gatekeepingu.
Aha, takže nejen, že nevíte, co je Babel a TypeScript, ale ani co je gatekeeping.
-
Pro drobné věci stačí pár řádků v jQuery
Vývoj je vždycky stejný. Nejprve: „Na tohle stačí pár řádků v jQuery.“ O tři týdny později: „Já v… jsem se zase nechal nachytat. Že jsem to od začátku nepsal v něčem pořádném.“ Otázka je jenom kolikrát se vám to stane, než si to zapamatujete a ten první krok rovnou přeskočíte.
který je na webu pravděpodobně stejně už načtený
Dokonce nejspíš vícekrát, v různých verzích …
Jinak pro nové věci mi přijde vhodný Vue.js - minimalistický a rychle naučitelný.
Souhlasím.
-
Jinak pro nové věci mi přijde vhodný Vue.js - minimalistický a rychle naučitelný.
Mě tedy přijde Vue dost komplikovaný. Člověk se musí učit šablokovací jazyk, deklarativní strukturu komponent... Oproti takovému Reactu, kde prostě komponenta je jednoduchá funkce.
-
- za posledne 3 roky som nenapisal snad ani jediny `this`
To spíš vypovídá o práci než o `this`.
uz sme novych programatorov ucili, ze ak nemaju specialny dovod tak nerobit, vsade pouzivat arrow functions a tam je this porieseny ( () => {..}` je ekvivalent (function() {..}).bind(this) )...
Proč? Zvlášť pokud jsi `this` tři roky nenapsal, tak moc nedává smysl to řešit...
pred 4 rokmi (ked sa ES2016 este volal ES6)
Tady něco nesedí.
co ti nesedi? 4 roky dozadu 2016 sme pisali react classy a pouzivali Babel, vsetky veci ktore nesli v browseroch bez Babelu sme volali ES6 lebo ziadne novsie pomenovanie vtedy nebolo, niektore z nich su dnes v ES2016...
Třeba to, že ES2016 je ES7 a ES6 je ES2015?
niekedy v 2017 (3 roky dozadu) sme zacali nove komponenty pisat funkcionalne a zacali sme s HoC/recompose patternom, vtedy uz "this" takmer nebolo treba (ano boli pripady, kedy hej, ale vo vacsine pripadov...)
Again, pokud není this potřeba, tak proč používat arrow functions, které ho mají "pořešený"? (Ať už to znamená cokoliv.) Tohle akorát vede k tomu, že všichni píší arrow functions a netuší proč, takže to pak bouchne v tu nejlepší chvíli.
-
Tohle akorát vede k tomu, že všichni píší arrow functions a netuší proč, takže to pak bouchne v tu nejlepší chvíli.
Co bouchne? Kotel? Papiňák? :D
Já vím přesně, proč píšu arrow functions :D Protože jsou kratší a přehlednější, zvlášť když člověk zapisuje HOF.
-
Pro drobné věci stačí pár řádků v jQuery
Vývoj je vždycky stejný. Nejprve: „Na tohle stačí pár řádků v jQuery.“ O tři týdny později: „Já v… jsem se zase nechal nachytat. Že jsem to od začátku nepsal v něčem pořádném.“ Otázka je jenom kolikrát se vám to stane, než si to zapamatujete a ten první krok rovnou přeskočíte.
S tímto se potýká každý vývojář. Někdo si vezme už na začátku kombajn i na záhonek, jiný si napíše motyku jako prototyp, který rozšiřuje a časem třeba také přejde na ten kombajn. Oba postupy mají svůj význam.