Autor | Zpráva | ||
---|---|---|---|
_es Profil |
#1 · Zasláno: 26. 11. 2010, 08:29:32
JavaScript by sa mal správne písať s veľkým s.
Nemalo by sa to opraviť, v názve sekcie diskusie a inde? |
||
Chamurappi Profil |
#2 · Zasláno: 26. 11. 2010, 09:30:28 · Upravil/a: Chamurappi
Reaguji na _es:
Ty mi čteš myšlenky, ne? Přesně o tomhle jsem zrovna včera také přemýšlel :-) Nemyslím, že to někomu vadí, když nám trvalo několik let, než jsme si to uvědomili. Ale asi to opravím. Alespoň v tom názvu kategorie. Moderátor Chamurappi: Název kategorie opraven.
|
||
Časová prodleva: 7 dní
|
|||
_es Profil |
#3 · Zasláno: 3. 12. 2010, 11:25:31
V odstavci Rozdíl mezi voláním funkce a funkcí v názornom kóde, by sa zišlo v komentároch nejako výrazne označiť príklad zlého kódu, teda riadky 5 a 7.
|
||
Časová prodleva: 1 měsíc
|
|||
Witiko Profil |
#4 · Zasláno: 7. 1. 2011, 19:55:58 · Upravil/a: Witiko
S přívalem fanoušků jQuery v poslední době mi přijde jako dobrý nápad přidat do naší FAQ sekce odstavec pro tento framework nebo frameworky všeobecně nechceme-li být zaujatí. Problémem je naprostá a dokonalá nepoznamenanost javascriptem části tazatelů, což je v případě právě jQuery knihovny ještě markantnější, protože ta se cíleně snaží stylem výsledného kódu budit dojem nesounáležitosti s javascriptem.
Obsahem by mělo především být právě seznámení s faktem, že framework mávnutím kouzelné hůlky nezmění jazyk, ve kterém je kód psaný a že se stále jedná o javascript ( Viz.: tento nebo třeba tenhle příspěvek). Stejně tak by určitě nebylo od věci zmínit v FAQ tento topic zabývající se strukturou kódu výše zmíněného frameworku. Pochopení struktury napomáhá porozumění funkčnosti a funkce. |
||
_es Profil |
#5 · Zasláno: 8. 1. 2011, 21:35:56
Witiko:
Ďalší prípad. Možno by mohol Chamurappi navrhnúť nejaký text, ktorý by po pripomienkach prípadne ešte upravil. |
||
Časová prodleva: 11 dní
|
|||
Witiko Profil |
#6 · Zasláno: 19. 1. 2011, 19:02:24
|
||
Časová prodleva: 30 dní
|
|||
Chamurappi Profil |
#7 · Zasláno: 18. 2. 2011, 16:58:30
Reaguji na Witika a _es:
Tak jsem něco sestavil. |
||
_es Profil |
#8 · Zasláno: 18. 2. 2011, 17:40:18
Chamurappi:
„Na živé ukázky skutečných potíží s jQuery se hodí jQuery zkoušečka od ah01.“ Dá sa to aj pomocou http://jsfiddle.net/, ten umožňuje aj vytvorenie odkazu s kódom aj použitie iných knižníc. Mohlo by sa spomenúť aj to, že tak, ako riešenie niektorých nekompatibilít prehliadačov jQuery zjednoduší, tak môže aj niekedy nekompatibility vyrobiť. |
||
Časová prodleva: 7 měsíců
|
|||
Witiko Profil |
#9 · Zasláno: 8. 9. 2011, 18:26:08 · Upravil/a: Witiko
Možná se setkám s všeobecným nesouhlasem, ale navrhnul bych pozměnění takřka demagogicky znějící sekce o příkazu
eval , a to možná i včetně titulku. Mám totiž za to, že naší snahou by, spíše než vyvolání odporu k dané funkci bez vysvětlení, mělo být vypíchnutí problémových bodů dané funkce.
Nevýhodami příkazu eval a jeho sourozenců je následující:
» Výkon - Zvlášť je-li kód předem kompilovaný, může být volání kompilátoru uprostřed kódu celkem znatelné. » Nebezpečí injekce - Nicméně na straně klienta je toto takřka bezzubé, jelikož útočník může postihnout jen u klienta zobrazený obsah. Při serverovém využití jazyka (node.js) by to pak byla obava reálnější. » Problémy s debugováním - Toto bych označil jako problém sestavení dat předávaných funkci spíše než problém funkce jako takové, nicméně v případech neznalosti kódu a tedy nemožnosti zaručit jeho proveditelnost jde o legitimní obavu. » Intervaly, timeouty, new Function - Ne skutečná nevýhoda eval u, spíše nevědomost kodérů, kteří si zbytečně ztěžují práci. Stejně jako na eval se na metody vztahují případy správného použití, žel ty tu v otázkách většinou nevídáme.
Pokud si je uživatel těchto nevýhod vědom namísto toho, aby měl z funkce iracionální hrůzu, může se pak setkat s případy, kdy má eval i legitimní využití a správně je rozeznat. Takovými případy je například parsování JSONu v prostředí bez nativní podpory objektu JSON , nebo například předávání a parsování aplikačního výstupu mezi dvěmi běžícími aplikacemi, které spolu nemohou sdílet reference (Web Workers).
Nikdo netvrdí, že příležitosti ke správnému použití funkce nejsou zřídkavé, nicméně mezi nízkou využitelností / vaností a neužitečností je myslím jasný rozdíl. |
||
Časová prodleva: 4 dny
|
|||
Witiko Profil |
#10 · Zasláno: 13. 9. 2011, 01:09:17 · Upravil/a: Witiko
Například zde je jedna z obětí místního FAQ. :-)
|
||
Chamurappi Profil |
#11 · Zasláno: 14. 9. 2011, 16:05:08 · Upravil/a: Chamurappi
Reaguji na Witika:
„Při serverovém využití jazyka (node.js)“ … možná reálněji spíš staré ASP. „takřka demagogicky znějící sekce o příkazu eval “
Máš pravdu, že současná verze víc straší než vysvětluje, ale žádná lepší slova mě nenapadla. Vlastně mě nenapadla vůbec žádná slova, proto jsem si vypůjčil ta od ah01. K nevýhodám: » Výkon – začátečníky moc nezajímá. » Nebezpečí injekce – příliš nehrozí a rizika jsou v prohlížeči malá. » Problémy s debugováním – to, že můžou vzniknout chyby, které se těžko hledají, tam už zmíněno je. » Intervaly, timeouty, new Function – to, že si tím tvůrci přidělávají práci a že se zamotávají v uvozovkách, tam také zmíněno je. Myslím, že odpor odborné veřejnosti k eval u je způsoben především samotnou konstrukcí jazyka a že má část rysů společných s odporem ke goto v jiných jazycích. JavaScript je stavěný tak, aby programátor při běžné práci eval nepotřeboval. Nebývá rozumné ho používat, lidi ho používají z neznalosti rozumnějších postupů, vytvářejí tím nevýkonný a nebezpečný, ale hlavně méně přehledný a hůř udržovatelný kód. Stručně vzato… je to zlo.
„může se pak setkat s případy, kdy má eval i legitimní využití a správně je rozeznat“ V tu chvíli už by mohl mít dostatečný nadhled a přehled o JS, aby dokázal racionálně vyhodnotit situaci. Zbytečné používání eval u je mnohonásobně častější než strach z legitimního použití eval u — proto si myslím, že ten strach lze v soupisu častých potíží zanedbat.
|
||
Witiko Profil |
#12 · Zasláno: 15. 9. 2011, 22:23:50 · Upravil/a: Witiko
Chamurappi:
„V tu chvíli už by mohl mít dostatečný nadhled a přehled o JS, aby dokázal racionálně vyhodnotit situaci.“ Ideálně. Často však vídám naprostou eval ofóbii i u lidí, kteří mají s platformou letité zkušenosti. Neříkám, že je to špatná věc, eval je skutečně zřídkakdy optimálním řešením. Jsem však přesvědčený, že každý odpor k něčemu by měl být opodstatněný, založený na racionální úvaze a zhodnocený kritickým myšlením.
„Máš pravdu, že současná verze víc straší než vysvětluje, ale žádná lepší slova mě nenapadla.“ Já bych alespoň přihodil někam na konec poznámku o parsování JSON u pro starší prohlížeče nebo o možnosti tvorby předkompilovaných funkcí (to je zrovna podle mě poměrně zajímavé využití). Jednoduše aby byl uveden i fakt, že jsou vzácné chvíle, kdy je použití ošklivého eval átka nejvhodnějším řešením. Bral bych to jako naši povinnost u fóra, které je znalostní databází a startovním bodem při psaní stránek pro tolik lidí, kteří - nemaje dostatek znalostí - alespoň ze začátku musí nekriticky věřit všemu, co zde naleznou.
|
||
Časová prodleva: 28 dní
|
|||
Chamurappi Profil |
#13 · Zasláno: 13. 10. 2011, 22:27:06
Dospěl jsem k závěru, že Univerzální funkce pro AJAX vypadá docela dlouze. Část programátorů, kteří jinak JS docela zvládají, se zbytečně uchyluje k frameworkům především kvůli tomu tajemnému AJAXu — předpokládají, že to je velká věda, ačkoliv skript na nejčastější činnost jde napsat zpaměti a je už sám o sobě z hlediska kompatibility prohlížečů universální (vyjma konstruktoru). Mám chuť napsat návod na AJAX. Nebo spíš obecně na komunikaci klient → server, protože jsem na toto téma nenašel žádné ucelené shrnutí… nebo hledám špatně? (Pak také přemýšlím, kam ho napsat.)
Reaguji na Witika: Doplnil jsem nepříliš konkrétní zmínku o vzácných případech. |
||
Časová prodleva: 2 roky
|
|||
Taps Profil |
#14 · Zasláno: 1. 2. 2014, 09:14:58
Možná by nebylo na škodu přidat do FAQ tuto stránku http://youmightnotneedjquery.com/ . Je na ní přehled alternativ klasického javascriptu oproti JQuery. Začátečníkům by se to mohlo hodit.
|
||
Str4wberry Profil |
#15 · Zasláno: 1. 2. 2014, 09:41:41
Je otázka, jestli je horší používat jQuery nebo nepodporovat IE 7/8. Spíš bych řekl, že často to druhé.
Hlavní výhoda pro začátečníky je u „staré větve“ jQuery právě srovnání rozdílů napříč prohlížeči. Stránka mi tedy přijde spíš pro pokročilé, kteří znají / jsou ochotni zkoumat odlišnosti v jednotlivých jádrech. |
||
juriad Profil |
#16 · Zasláno: 1. 2. 2014, 10:10:50
Nelíbí se mi to. Ukazuje několik příkladů, které samy o sobě nejsou použitelné.
V některých ukázkách se autor snaží řešit kompatibilitu s IE8 a jinde ji prostě zahodí. Nejvíce mi na tom webu vadí, že skoro u všeho píše IE8+, i když to fungovalo už dlouho před IE8. Pro mě by byl zajímavější přehled toho, co vlastně jQuery ve svých metodách skutečně volá. (Potřebuju přidat element, ale neznám DOM API.) Řeší to use case: najdu řešení používající jQuery, které já nechci používat, a zajímá mě, jak to zjednodušeně implementovat sám. Nemusel bych procházet zdrojáky jQuery a přemýšlet o tom, jak se nepotřebného balastu zbavit. |
||
Chamurappi Profil |
#17 · Zasláno: 1. 2. 2014, 15:35:55
Reaguji na juriada:
„Pro mě by byl zajímavější přehled toho, co vlastně jQuery ve svých metodách skutečně volá.“ To zní jako vynikající nápad, znamenám si… Reaguji na Tapse: Projel jsem to jen zběžně (je to dost nepřehledné, protože autor používá v mém prohlížeči neexistující elementy) a narazil jsem tam třeba na toto zjišťování, jestli je proměnná pole: isArray = Array.isArray || function(arr) { return arr.toString() == '[object Array]' } pole.join(",") , takže pokud v poli není právě jedna položka obsahující řetězec "[object Array]" , tato funkce isArray selže všude tam, kde není Array.isArray . Docela nebezpečné.
|
||
Časová prodleva: 1 rok
|
|||
_es Profil |
#18 · Zasláno: 4. 6. 2015, 17:01:14
K téme Časté potíže, zajímavosti a poučné debaty » Výsledkem výpočtu
1 - 0.9 není přesně 0.1 by mohlo byť pridané, ako daný problém vyriešiť. Buď vhodným zaokrúhlením výsledku (so zdôraznením, že len výsledku, nie medzivýsledkov, no zriedkavo by možno sa mohlo hodiť aj zaokrúhlenie užívateľských vstupov ( Pripocitavanie a odpocitavanie)), alebo s počítaním s najmenšími možnými hodnotami ako celými číslami, napríklad v prípade českých korún rátanie v halieroch.
|
||
Časová prodleva: 9 let
|
0